鼠标外部单击弹出控件WPF

时间:2015-08-05 08:43:30

标签: wpf popup

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

由于 谢卡尔

1 个答案:

答案 0 :(得分:0)

要在外部点击弹出窗口时关闭弹出窗口,可以将弹出窗口的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;
}