单击任意位置的表单关闭弹出窗口

时间:2011-05-02 12:15:04

标签: c# wpf onclick

我是WPF C#的新手,我正在寻找一些方向。我有一个弹出错误的文本框,我希望用户能够单击表单上的任何位置来关闭此窗口。我不确定要使用哪些搜索字词或从哪里开始。任何帮助或自作聪明评论,如“你听说过谷歌”赞赏:)

等, 如果鼠标点击 隐藏();

谢谢, rd42

我的最终解决方案:

private void Button_Click(object sender, RoutedEventArgs e)
{
    this.Hide();
}

4 个答案:

答案 0 :(得分:5)

这是一个使用Popup窗口的简单解决方案。

<Popup Name="errMsg" StaysOpen="False">
  <TextBox/>
</Popup>

从代码隐藏中,只需在显示弹出窗口时执行此操作。

errMsg.IsOpen = true;

单击Popup外的任何位置都会产生所需的效果。 如果您使用的是传统窗口,只需订阅其LostFocusDeactivate事件并在那里关闭它(假设它不显示为对话框)。老实说,Popup是这类案例最简单,最好的解决方案。

答案 1 :(得分:2)

订阅Window实例的MouseUp事件。

答案 2 :(得分:1)

表单中的MouseUp事件应该是您要查找的事件

答案 3 :(得分:1)

在另一个论坛上找到了:

使用Window.Deactivate事件&amp;在事件实现中,关闭窗口......就是这样......:)