我是WPF C#的新手,我正在寻找一些方向。我有一个弹出错误的文本框,我希望用户能够单击表单上的任何位置来关闭此窗口。我不确定要使用哪些搜索字词或从哪里开始。任何帮助或自作聪明评论,如“你听说过谷歌”赞赏:)
等, 如果鼠标点击 隐藏();
谢谢, rd42
我的最终解决方案:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.Hide();
}
答案 0 :(得分:5)
这是一个使用Popup
窗口的简单解决方案。
<Popup Name="errMsg" StaysOpen="False">
<TextBox/>
</Popup>
从代码隐藏中,只需在显示弹出窗口时执行此操作。
errMsg.IsOpen = true;
单击Popup外的任何位置都会产生所需的效果。
如果您使用的是传统窗口,只需订阅其LostFocus
或Deactivate
事件并在那里关闭它(假设它不显示为对话框)。老实说,Popup是这类案例最简单,最好的解决方案。
答案 1 :(得分:2)
订阅Window
实例的MouseUp
事件。
答案 2 :(得分:1)
表单中的MouseUp事件应该是您要查找的事件
答案 3 :(得分:1)
在另一个论坛上找到了:
使用Window.Deactivate
事件&amp;在事件实现中,关闭窗口......就是这样......:)