Как упоминалось в названии, я хочу, чтобы всплывающее окно показывало, когда текстовое поле получает фокус клавиатуры, а затем закрывается, когда пользователь щелкает за пределами всплывающего окна (это делается через staysopen = false).Открывать всплывающее окно, когда текстовое поле имеет фокус клавиатуры и закрывается с помощью свойства «staysopen = false»
Как вы можете видеть по приведенному ниже коду, я связал имущество IsOpen
с объектом IsKeyboardFocused
объекта ExampeTextBox. Это работает для открытия всплывающего окна, но не позволяет мне взаимодействовать со всплывающим окном, так как я вызываю 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
, что вы делаете, используя всплывающее окно точно? –