【问题标题】:Outside mouse click of the popup control WPF弹出控件WPF的鼠标外点击
【发布时间】:2015-08-05 08:43:29
【问题描述】:

我们需要显示弹出窗口。在控件外部单击时,它会自动关闭。例如,单击按钮操作触发的任何按钮。需求弹出窗口应该像组合框一样工作。当点击超出范围时,它会关闭下拉菜单,并且任何其他都不会触发。我使用鼠标捕获来做到这一点,并适用于按钮 click 。但是在单击选项卡控件时会发生选择。如何停止鼠标拦截。

谢谢 塞卡

【问题讨论】:

    标签: wpf popup


    【解决方案1】:

    要在您单击弹出窗口外部时关闭它,您可以将弹出窗口的StaysOpen 属性设置为false

    至于阻止鼠标点击触发其他控件,也许你可以使用这个技巧: 打开弹出窗口时,将窗口的IsHitTestVisible 属性临时设置为false。并且当它关闭时,将其设置回true,例如:

    <Popup x:Name="popup1" StaysOpen="False" Opened="popup1_Opened" Closed="popup1_Closed">
    

    以及背后的代码:

    private void popup1_Opened(object sender, EventArgs e)
    {
        window1.IsHitTestVisible = false;
    }
    
    private void popup1_Closed(object sender, EventArgs e)
    {
        window1.IsHitTestVisible = true;
    }
    

    【讨论】:

    • 感谢您的回答。我的问题是如何用其他控件阻止鼠标拦截。单击其他控件时,弹出窗口应关闭,并且不应发生其他任何操作
    • 糟糕.. 抱歉,我忽略了您问题的最后一部分并误解了它。我已经更新了我的答案,请检查它是否可以回答您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2018-06-29
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2018-08-05
    相关资源
    最近更新 更多