Chcę pokazać zaznaczenie w polu tekstowym WPF, nawet gdy nie jest aktywny. Jak mogę to zrobić?Jak zachować zaznaczenie pola tekstowego WPF, gdy nie jest on skupiony?
Odpowiedz
Użyłem tego rozwiązania dla RichTextBox, ale zakładam, że będzie również działać na standardowe pole tekstowe. Zasadniczo, musisz zająć się zdarzeniem LostFocus i oznaczyć je jako obsługiwane.
protected void MyTextBox_LostFocus(object sender, RoutedEventArgs e)
{
// When the RichTextBox loses focus the user can no longer see the selection.
// This is a hack to make the RichTextBox think it did not lose focus.
e.Handled = true;
}
Moduł TextBox nie będzie wiedział, że utracił fokus i nadal będzie wyświetlać zaznaczony wybór.
Nie używam powiązania danych w tym przypadku, więc może się zdarzyć, że to zepsułoby wiązanie w obie strony. Być może będziesz musiał wymusić wiązanie w procedurze obsługi zdarzenia LostFocus. Coś takiego:
Binding binding = BindingOperations.GetBinding(this, TextProperty);
if (binding.UpdateSourceTrigger == UpdateSourceTrigger.Default ||
binding.UpdateSourceTrigger == UpdateSourceTrigger.LostFocus)
{
BindingOperations.GetBindingExpression(this, TextProperty).UpdateSource();
}
Inną opcją jest zdefiniowanie odrębnego zakresu ostrości w XAML utrzymać wybór w pierwszym polu tekstowym.
<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)
{
}
}
I stwierdził, że sugestie wymienione (dodanie obsługi LostFocus, definiując FocusScope), aby nie pracować, ale nie natknąć kodu wymienionych tutaj: http://naracea.com/2011/06/26/selection-highlight-and-focus-on-wpf-textbox/, który tworzy niestandardowe Adorner że podświetla tekst, gdy nie jest skupiony.
- 1. Zmiana koloru tła pola tekstowego nie działa, gdy jest pusta
- 2. WPF Sprawdzanie poprawności niezwiązanego pola tekstowego
- 3. Błąd iOS? Nie można zmienić tekstu zaznaczenia, gdy jest on skupiony za pomocą jQuery
- 4. Umożliwianie "wklejania danych" do pola tekstowego WPF
- 5. zmiana WPF lewy margines pola tekstowego
- 6. Ramka pola tekstowego WPF po wybraniu?
- 7. filtr wartości danych wpf z pola tekstowego
- 8. Jak dodać przycisk "Wyczyść" do pola tekstowego w WPF?
- 9. Odnajdywanie pola tekstowego jest puste
- 10. Jak usunąć obramowanie z pola tekstowego w WPF?
- 11. Jak uzyskać i ustawić aktualną pozycję kursora pola tekstowego WPF
- 12. Jak zmienić wysokość pola tekstowego?
- 13. Przycisk tekstowego przycisku WPF
- 14. Sprawdź zaznaczenie pola wyboru z poziomu Listener
- 15. jak zmniejszyć szerokość pola tekstowego?
- 16. Wstawianie tekstu do pola tekstowego WPF na stanowisku opiekuńczym
- 17. Blokowanie szerokości pola tekstowego
- 18. sprawdzanie długości pola tekstowego
- 19. Pola wstępnie wypełnionego pola tekstowego WebView
- 20. Jak wyłączyć zaznaczenie na TextBox
- 21. Wysokość wprowadzania pola tekstowego
- 22. Wykładanie pola tekstowego
- 23. iOS 8 Kolor pola tekstowego
- 24. Zaznaczenie pola wyboru przez kliknięcie obrazu
- 25. Jak wybrać cały tekst wejściowy za pomocą Reactjs, kiedy jest on skupiony?
- 26. Jak dodać ograniczenie długości do pola tekstowego
- 27. DataModel musi implementować org.primefaces.model.SelectableDataModel, gdy zaznaczenie jest włączone.
- 28. Zapytanie grupy mongo, jak zachować pola
- 29. Zmiana koloru pierwszego planu pola tekstowego, gdy zmienia się tekst i spełnia określone kryterium
- 30. jak ustawić wartość dla pola tekstowego extjs?
To zadziałało! Dzięki! –
+1 Przyjemne rozwiązanie - pomogło mi w tworzeniu funkcji wyszukiwania ... Thx – reSPAWNed
To głównie działa, ale przerywa przewijanie na nieostrych RichTextBoxach z zaznaczonymi w nich wyborami - zaznaczenie zaznaczenia nie przesuwa się wraz z tekstem. – Cameron