我有一個包含ListView的彈出窗口。 ListView包含客戶名稱。當單擊搜索欄時,彈出窗口會打開。用戶可以在搜索欄(文本框)中輸入文本,並根據輸入過濾列表視圖。焦點丟失時關閉彈出菜單
我想在彈出焦點時關閉彈出窗口。但是,默認的「自動關閉」行爲StaysOpen="False"
不好,因爲每次有人單擊搜索欄時它都會關閉彈出窗口。
除非焦點轉到搜索欄時,我怎樣才能在彈出焦點時關閉彈出窗口?
我有一個包含ListView的彈出窗口。 ListView包含客戶名稱。當單擊搜索欄時,彈出窗口會打開。用戶可以在搜索欄(文本框)中輸入文本,並根據輸入過濾列表視圖。焦點丟失時關閉彈出菜單
我想在彈出焦點時關閉彈出窗口。但是,默認的「自動關閉」行爲StaysOpen="False"
不好,因爲每次有人單擊搜索欄時它都會關閉彈出窗口。
除非焦點轉到搜索欄時,我怎樣才能在彈出焦點時關閉彈出窗口?
也許你可以在搜索文本框中添加一些鉤子。當它收到焦點時,它可以打開彈出窗口並設置StaysOpen = true
。當文本框失去焦點時,它可以在彈出菜單上設置StaysOpen = false
。
XAML代碼:
<Popup x:Name="pop" StaysOpen="False">
添加事件處理程序的離開事件(當焦點在失去控制的稱呼)。在此事件處理程序中,可以檢查具有焦點的新項目是否爲搜索文本框。
if(FormName.ActiveForm.ActiveControl == txtSearchBox)
然後基於搜索文本框是否已專注適當設置StaysOpen
。
如何: