2011-05-02 57 views
2

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

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

感谢, rd42

我的最终解决方案:

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

回答

5

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

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

从你的代码隐藏,只是这样做的时候,是时候显示弹出。

errMsg.IsOpen = true; 

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

+0

+ 1。是关于这个帖子的东西类似。比手动处理MouseUp事件要漂亮得多。 – Bubblewrap 2011-05-02 12:29:24

2

订阅MouseUp事件Window实例。形式

+0

老鼠,打我TTO它... – 2011-05-02 12:21:02

1

MouseUp事件应该是你正在寻找

1

有另一个论坛上发现:

使用Window.Deactivate事件&事件里面执行,关闭窗口......就是这样...... :)

相关问题