Wbijam sobie głowę w coś, co wygląda na taki prosty problem do naprawienia w wpf, ale muszę jeszcze odkryć, dlaczego nie mogę sprawić, aby moja aplikacja zachowywała się zgodnie z moim plan.Keyboard.Focus nie działa w polu tekstowym w WPF
Mam małe pole wyszukiwania, które pojawia się w mojej aplikacji wpf, gdy użytkownik naciśnie ctrl + f. Wszystko, czego chcę, to flashowanie karku w polu tekstowym pola wyszukiwania, gotowe do podjęcia wszelkich danych wprowadzanych przez użytkownika bez konieczności klikania przez użytkownika. Oto kod xaml dla pola tekstowego, który jest widoczny, włączony, trafiony, możliwy do ustawienia i umożliwiający ustawianie ostrości.
<TextBox x:Name="SearchCriteriaTextBox" Text="{Binding SearchCriteria}" Focusable="True" IsEnabled="True" IsTabStop="True" IsHitTestVisible="True" Style="{DynamicResource SearchTextBoxStyle}" Grid.Column="1" Margin="5,10,0,5" />
W kodzie źródłowym mam tę metodę wywoływaną, gdy wpływa ona na widoczność pola wyszukiwania. pole wyszukiwania jest ładowane na początku aplikacji.
/// <summary>
/// Handles events triggered from focusing on this view.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="dependencyPropertyChangedEventArgs">The key event args.</param>
private void OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
if (!((bool) dependencyPropertyChangedEventArgs.NewValue))
{
return;
}
SearchCriteriaTextBox.Focus();
Keyboard.Focus(SearchCriteriaTextBox);
SearchCriteriaTextBox.Select(0, 0);
if (SearchCriteriaTextBox.Text.Length > 0)
{
SearchCriteriaTextBox.SelectAll();
}
}
Problem polega na wywołaniu kodu, składnik staje się IsFocused = true, ale nie uzyskuje ostrości klawiatury. Czy czegoś brakuje? O ile inna kontrola nie trzyma w skupieniu ostrości klawiatury, jestem pewien, że nie kodowałem, dlaczego ten kawałek prostego kodu nie działałby prawidłowo.
Spróbuj zrobić to po załadowanym wydarzeniu. –
Przypuszczam, że inna kontrola skupia się po wywołaniu tej metody. Może powinieneś skupić się na innym wydarzeniu. – Ramin
@HighCore Mam pytanie: Czy ładowane zdarzenie jest uruchamiane za każdym razem, gdy zmienia się widoczność? – Ramin