正如標題中所述,我希望彈出窗口顯示,當文本框獲得鍵盤焦點時,但當用戶在彈出窗口外單擊時關閉(這是通過staysopen = false完成的)。當文本框具有鍵盤焦點並通過「staysopen = false」屬性關閉時打開彈出框
正如您在下面的代碼中看到的,我已將IsOpen
屬性綁定到ExampeTextBox的IsKeyboardFocused
屬性。這適用於打開彈出窗口,但阻止我與彈出窗口進行交互,因爲我在用戶單擊窗口中的任何位置時被調用的單擊事件中調用Keyboard.ClearFocus();
。這意味着單擊文本框外的任何位置都會導致Keyboard.ClearFocus()
觸發,導致文本框失去鍵盤焦點。
如果我設置StaysOpen = false
,然後設置IsOpen
編程通過Popup.IsOpen = true;
它會導致性能IsOpen
和StaysOpen
衝突和彈出窗口不會出現在所有。
<Popup
x:Name="ExamplePopup"
Placement="Bottom"
PlacementTarget="{Binding ElementName=ExampleTextBox}"
IsOpen="{Binding ElementName=ExampleTextBox, Path=IsKeyboardFocused, Mode=OneWay}">...</Popup>
Here is a screen recording of my problem.
任何幫助深表感謝感謝。
爲什麼不使用自動完成文本框而不是普通文本框。它看起來好像你想在彈出的窗口中顯示搜索建議 – Jerin
通過完全使用彈出窗口,你在做什麼? –