Ich möchte eine Auswahl in einer WPF TextBox zeigen, auch wenn es nicht im Fokus ist. Wie kann ich das machen?Wie man WPF TextBox Auswahl hält, wenn nicht fokussiert?
Antwort
Ich habe diese Lösung für eine RichTextBox verwendet, aber ich nehme an, dass es auch für eine Standardtextbox funktioniert. Grundsätzlich müssen Sie das LostFocus-Ereignis behandeln und als behandelt markieren.
Die TextBox erkennt nicht, dass sie den Fokus verloren hat und zeigt weiterhin die hervorgehobene Auswahl an.
Ich verwende in diesem Fall keine Datenbindung, daher ist es möglich, dass dies die Zwei-Wege-Bindung durcheinander bringt. Möglicherweise müssen Sie die Bindung in Ihrem LostFocus-Ereignishandler erzwingen. Etwas wie folgt aus:
Binding binding = BindingOperations.GetBinding(this, TextProperty);
if (binding.UpdateSourceTrigger == UpdateSourceTrigger.Default ||
binding.UpdateSourceTrigger == UpdateSourceTrigger.LostFocus)
{
BindingOperations.GetBindingExpression(this, TextProperty).UpdateSource();
}
Eine andere Möglichkeit ist, einen separaten Fokusbereich in XAML definieren die Auswahl in der ersten TextBox zu halten.
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Text="Text that does not loose selection."/>
<StackPanel Grid.Row="1" FocusManager.IsFocusScope="True">
<TextBox Text="Some more text here." />
<Button Content="Run" />
<Button Content="Review" />
</StackPanel>
</Grid>
public class CustomRichTextBox : RichTextBox
{
protected override void OnLostFocus(RoutedEventArgs e)
{
}
}
fand ich, dass die aufgeführten Vorschläge (einen Lost-Focus-Handler hinzufügen, die einen FocusScope) nicht arbeiten, aber ich habe über den Code kam hier aufgelistet: http://naracea.com/2011/06/26/selection-highlight-and-focus-on-wpf-textbox/, die einen benutzerdefinierten Adorner erstellt, die die Highlight Text, wenn nicht fokussiert.
- 1. wpf datagridcell gehe in editmodus wenn fokussiert
- 2. Set ListBoxItem.IsSelected, wenn untergeordnete TextBox fokussiert ist
- 3. WPF-Mausverhalten, wenn ComboBox fokussiert ist
- 4. Wie erkennt man, wenn das gesamte Formular nicht fokussiert ist?
- 5. WPF TextBox Rahmen, wenn ausgewählt?
- 6. Wie erkenne ich keyPress, wenn nicht fokussiert?
- 7. jquery Klon Auswahl hält nicht den Wert
- 8. wpf skala zu textBox, textBox kann den Cursor nicht anzeigen, wenn ich auf TextBox klicke
- 9. wpf: Mausdoppelklick für Textbox
- 10. chrome.tabs.sendMessage, wenn die Registerkarte nicht fokussiert ist
- 11. Tkinter Toplevel: Zerstöre Fenster, wenn nicht fokussiert
- 12. Multiline für WPF TextBox
- 13. Wpf Listbox Textbox Bindung
- 14. WPF Validieren ungebundener Textbox
- 15. wpf textbox cursor scrolling
- 16. mehrzeilige Ausgabe WPF TextBox
- 17. WPF: einfache TextBox Datenbindung
- 18. Binding Textbox in wpf
- 19. TextBox-Bindung in WPF
- 20. WPF-TextBox überschreiben
- 21. WPF TextBox Validation
- 22. WPF TextBox und Leerzeichen
- 23. WPF Seitenlayout Kontrolle Auswahl
- 24. ListBoxItem Auswahl auf TextBox Fokus
- 25. WPF TextBox Wert ändert auf OnPropertyChanged nicht
- 26. WPF TextBox-Benutzerwörterbuch-Unterstützung
- 27. WPF MVVM TextBox Textbindung
- 28. Capture-Mausklicks auf WPF TextBox
- 29. Wie man ein Versprechen hält
- 30. WPF TextBox nicht akzeptiert Löschen Schlüssel
Das hat funktioniert! Vielen Dank! –
+1 Schöne Lösung - half mir beim Erstellen einer Suchfunktion ... Thx – reSPAWNed
Dies funktioniert meistens, aber bricht Scrollen auf nicht fokussierten RichTextBoxen mit Auswahlen in ihnen - die Auswahl Highlight bewegt sich nicht mit dem Text. – Cameron