Aktualnie jestem w trakcie tworzenia klawiatury ekranowej. Obsługuję kliknięcie przycisku za pomocą polecenia routedcommands. Problem polega na tym, że po kliknięciu przycisku na panelu klawiatury ostrość przesuwa się do przycisku, a nie do pola tekstowego. Wymóg określa, że kursor powinien zawsze pojawiać się w polu tekstowym, aby wskazać położenie, w którym zostanie wstawiony następny znak. Czy istnieje sposób, że mogę skupić się na polu tekstowym, gdy kliknięto przycisk.Koncentracja kursora na polu tekstowym w WPF/C#
Odpowiedz
Aby ustawić logiczną skupienie się do kontroli wejściowej
FocusManager.SetFocusedElement(this, textboxJack); // set logical focus
Aby ustawić klawiaturę do sterowania wejściami
Keyboard.Focus(textboxJill); // set keyboard focus
znać różnicę między logiczną i klawiatury naciskiem
Input Overview - Focus na MSDN
Podoba mi się te do-my-homework -do mnie pytania; "wymóg stwierdza" ... bezcenny. Dla tych, którzy znajdują to za pośrednictwem Google, trik do progresywnego przesuwania kursora w polu tekstowym WPF jest użycie właściwości SelectioNStart.
private void Button_Click(object sender, RoutedEventArgs e)
{
textBox.Focus();
textBox.SelectionStart = textName.Text.Length;
}
Sposób w jaki rozwiązałem ten problem polegał na ustawieniu focusable=false
na wszystkie przyciski/elementy sterujące na klawiaturze. W ten sposób nie tracisz skupionej na aktualnej kontroli.
Twój problem można rozwiązać, używając osobnego zakresu ostrości dla "klawiatury". Wystarczy zastosować następującą właściwość do kontroli, który zawiera wszystkich przycisków i wtedy będą w odrębnym zakresem ostrości i nie będzie miał ostrość ustawiona na nich po kliknięciu
FocusManager.IsFocusScope="True"
Textbox.Focus();
ten skupi się na textbox
Uzyskaj referencję dla konkretnej kontroli (w tym przypadku TextBox). Po kliknięciu w ten sposób Button_Click wklej:
Dispatcher.BeginInvoke((ThreadStart)delegate
{
control.Focus();
});
dla mnie, po prostu to działa. Dzięki... –
musiałem to wykorzystać, aby uzyskać pożądany efekt moja
FocusManager.SetFocusedElement(this, UserNameautoCompleteBox);
Key key = Key.Enter; // Key to send
var target = Keyboard.FocusedElement; // Target element
RoutedEvent routedEvent = Keyboard.KeyDownEvent; // Event to send
target.RaiseEvent(
new KeyEventArgs(
Keyboard.PrimaryDevice,
PresentationSource.FromVisual(UserNameautoCompleteBox),
0,
key) { RoutedEvent = routedEvent }
);
chciałem zrobić to samo, ale nic nie wydawało się dla mnie pracować. Naprawdę potrzebowałem odpowiedzi, która działała wyłącznie w XAML, ponieważ pracuję z MVVM.
końcu znalazłem ten przykład: http://spin.atomicobject.com/2013/03/06/xaml-wpf-textbox-focus/
i modyfikować je w ten sposób:
W sekcji 'zasobów':
<Style x:Key="FocusTextBox" TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=textBoxName, Path=IsVisible}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=textBoxName}"/>
</DataTrigger>
</Style.Triggers>
</Style>
W mojej definicji Grid:
<Grid Style="{StaticResource FocusTextBox}" />
- 1. Zapobieganie migotaniu kursora w polu tekstowym
- 2. Jquery - Jeśli pozycja kursora na początku/końcu w polu tekstowym
- 3. Jak ustawić pozycję na pozycji kursora w polu tekstowym?
- 4. Błąd w polu tekstowym
- 5. Jak ustawić kursor na końcu tekstu w zamaskowanym polu tekstowym?
- 6. Vue.js na polu tekstowym focus na ładunku
- 7. Jak zaktualizować wartość w jednym polu tekstowym na podstawie wartości wprowadzonej w innym polu tekstowym?
- 8. Odznacz tekst w polu tekstowym
- 9. Wyświetlanie obrazu w polu tekstowym
- 10. CSS Centrum polu tekstowym
- 11. Usuń fokus na pierwszym polu tekstowym
- 12. Jak wyzwolić backspace na polu tekstowym?
- 13. Pożarowe wydarzenie na polu tekstowym traci ostrość
- 14. Jak uzyskać pozycję kursora w obszarze tekstowym?
- 15. Wyłącz autouzupełnianie w polu tekstowym w Django?
- 16. Format DataTime w polu tekstowym w szynach
- 17. Czy mogę zmienić rozmiar kursora w polu tekstowym edycji w systemie Android?
- 18. Walidacja w polu tekstowym w WPF
- 19. małe "x" w polu tekstowym na iphone w mobileSafari?
- 20. Wyświetlanie numeru wiersza w polu tekstowym C#
- 21. Wykryj pole UISearchBar w polu tekstowym
- 22. Sprawdź skrypt w polu tekstowym asp.net
- 23. Python Tkinter słuchacz w polu tekstowym
- 24. Programowo naciśnij klawisz "Lewo" w polu tekstowym
- 25. Znaki ignorowane podczas pisania w polu tekstowym
- 26. Wywołaj akcję w polu tekstowym z przycisku
- 27. Jak dodać tekst w wieloliniowym polu tekstowym?
- 28. Jak wyłączyć zawijanie tekstu w polu tekstowym?
- 29. jQuery: Przechwytywanie klawisza TAB w polu tekstowym
- 30. jak wyświetlić wersję publiczną w polu tekstowym?
To nie jest pytanie "do-my-homework-for-me". Jest to pytanie "Odrabiam pracę domową, ale utknąłem, czy ktoś może mi dać jakieś wskazówki". –