Uwp Beispiel navigation und die Konzentration auf die Kontrolle
Benutze ich uwp-navigation Beispiel als ein Beispiel für meine Anwendung navigation. Ich brauche, um den Fokus auf die TextBox. Ich versuche es auf uwp-navigation Beispiel. Für BasicPage füge ich diesen code:
<StackPanel Orientation="Vertical">
<TextBox x:Name="Test" />
<TextBox x:Name="Test1" />
</StackPanel>
public BasicPage()
{
this.InitializeComponent();
this.Loaded += BasicPage_Loaded;
}
private void BasicPage_Loaded(object sender, RoutedEventArgs e)
{
Test1.Focus(FocusState.Programmatic);
}
Test1 nicht den Fokus erhalten. Ich versuche, diesen code in ein "normales" universellen windows-app - es ist Arbeit. Was raten Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es, weil die Fokus-Funktion aufgerufen wird, wird an anderer Stelle nach Ihnen, rufen Sie die Test1.Den Fokus.
In AppShell.xaml.cs, finden Sie den folgenden code:
Den obigen code bedeutet, wenn Sie navigieren Sie zu einer Seite, es wird abonnieren die Seite geladen Veranstaltung und setzen Sie den Fokus auf die Seite.
Ihren code abonnieren die Seite geladen Veranstaltung in der Seite selbst. Und der code wird ausgeführt, bevor das Page_Loaded-Funktion in AppShell. So hatten Sie nicht bekommen, was Sie wollen.
Also, wenn Sie kommentieren Sie einfach
((Page)sender).Focus(FocusState.Programmatic);
im Page_Loaded-Funktion. Sie bekommen, was Sie wollen. Ich bin nicht sicher, was ist der genaue Zweck dieser Linie. Aber alles scheint gut zu sein.Wenn Sie feststellen, etwas falsch nach dem auskommentieren dieser Zeile können wir auch arbeiten Sie rund um. Rufen Sie die Fokus-Funktion einmal in LayoutUpdated Ereignis nach dem loaded-Ereignis.
Hoffe das kann dir helfen.
wenn Sie möchten, um den Fokus auf eine textbox programmatisch. Verhindern keyboarddisplay so layoutupdate-Ereignis wird nicht ausgelöst. Sie können etwas tun, wie
dann in page_loaded-Ereignis tun Test1.Focus(FocusState.Programmatische);