2011-05-02 86 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事件&事件裏面執行,關閉窗口......就是這樣...... :)