Entferne den Fokus auf das erste Textfeld

8

In unserer Windows Store-App haben wir ein Textfeld, und wenn die Anwendung gestartet wird, erhält dieses Textfeld immer den Fokus. In einem Desktop-Szenario ist das kein Problem, aber auf einem Tablet-Gerät öffnet dieser Fokus direkt die Bildschirmtastatur, was kein gewünschtes Szenario ist.

Wir haben versucht, den Fokus auf ein anderes Steuerprogramm mit der .Focus (FocusState) -Methode zu setzen, aber irgendwie wird der Fokus auf die Textbox zurückgesetzt. Wir haben beide den Fokus auf die LoadState- oder die OnNavigatedTo-Methode gesetzt.

Nur wenn wir einen Timer haben, haben wir den Fokus erfolgreich auf ein anderes Steuerelement gesetzt. Hat jemand Ideen, wie man den Fokus auf ein anderes Steuerelement setzt oder vorzugsweise überhaupt kein Fokus auf ein Steuerelement legt?

    
ChristiaanV 08.08.2013, 08:14
quelle

3 Antworten

16

Normalerweise können Sie den Fokus auf ein beliebiges Element nach TextBox.Focus() setzen. Allerdings habe ich die gleichen Verhaltensweisen (Autofokus beim Start) entdeckt, wenn Sie Ihre TextBox in einen ScrollViewer oder FlyOut platzieren. Dann müssen Sie das IsTabStop aktivieren das Elternelement:

%Vor%     
Jan Hommes 08.08.2013, 11:47
quelle
0

IsTabStop="true" hat bei mir nicht funktioniert. Meine Lösung besteht darin, UpdateLayout () des scrollViewer aufzurufen, bevor Sie den Fokus auf die TextBox setzen:

scrollViewer.UpdateLayout ();

textBox.Focus (Windows.UI.Xaml.FocusState.Programmatic);

    
Dim_Ka 18.06.2014 09:08
quelle
0

Wenn Sie die akzeptierte Antwort mit ScrollViewer nicht mögen, können Sie auch den Fokus entfernen:

%Vor%     
thumbmunkeys 26.02.2016 10:55
quelle