Wie im Titel erwähnt, möchte ich das Popup anzeigen, wenn das Textfeld Tastaturfokus erhält, aber dann schließen, wenn der Benutzer außerhalb des Popup klickt (was über staysopen = false geschieht).Popup öffnen, wenn Textbox Tastaturfokus hat und schließen über "staysopen = false" -Eigenschaft
Wie Sie mit dem Code unten sehen können, habe ich die Eigenschaft IsOpen
an die ExampeTextBox IsKeyboardFocused
Eigenschaft gebunden. Das funktioniert, um das Popup zu öffnen, aber verhindert, dass ich mit dem Popup interagiere, wie ich Keyboard.ClearFocus();
in einem Klick-Ereignis rufe, das aufgerufen wird, wenn der Benutzer irgendwo auf das Fenster klickt. Das bedeutet, dass das Klicken auf eine beliebige Stelle außerhalb des Textfelds zum Auslösen von Keyboard.ClearFocus()
führt, wodurch das Textfeld den Tastaturfokus verliert.
Wenn ich StaysOpen = false
gesetzt und stellen Sie dann IsOpen
programmatisch über Popup.IsOpen = true;
es bewirkt, dass die Eigenschaften IsOpen
und StaysOpen
zu Konflikt und das Popup erscheint überhaupt nicht auf.
<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.
Jede Hilfe ist sehr Dank geschätzt.
Warum nicht eine Autocomplete-Textbox anstelle der normalen Textbox verwenden. Es scheint, als ob Sie Suchvorschläge in Ihrem Popup anzeigen möchten. – Jerin
Was tun Sie, indem Sie ein Popup genau verwenden? –