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

rd4*_*d42 2 c# wpf onclick

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

比如,如果鼠标点击hide();

谢谢,rd42

我的最终解决方案

private void Button_Click(object sender, RoutedEventArgs e)
{
    this.Hide();
}
Run Code Online (Sandbox Code Playgroud)

A.R*_*.R. 5

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

<Popup Name="errMsg" StaysOpen="False">
  <TextBox/>
</Popup>
Run Code Online (Sandbox Code Playgroud)

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

errMsg.IsOpen = true;
Run Code Online (Sandbox Code Playgroud)

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