Es scheint, dass beim Start einer WPF-Anwendung nichts den Fokus hat.
Das ist wirklich komisch. Jedes andere Framework, das ich verwendet habe, macht genau das, was Sie erwarten: Konzentriert sich zunächst auf das erste Steuerelement in der Tabulatorreihenfolge. Ich habe jedoch bestätigt, dass es sich um WPF handelt, nicht nur um meine App. Wenn ich ein neues Fenster erstelle und einfach eine TextBox einfüge und die App ausführe, hat die TextBox keinen Fokus, bis ich darauf klicke oder die Tabulatortaste drücke . Yuck.
Meine eigentliche App ist komplizierter als nur eine TextBox. Ich habe mehrere Ebenen von UserControls in UserControls. Eines dieser UserControls verfügt über die Handler Focusable = "True" und KeyDown / KeyUp, und ich möchte, dass es den Fokus hat, sobald sich mein Fenster öffnet. Ich bin allerdings immer noch ein WPF-Neuling, und ich habe nicht viel Glück, herauszufinden, wie das geht.
Wenn ich meine App starte und die Tabulatortaste drücke, wird der Fokus auf meine fokussierbare Steuerung gelegt und funktioniert wie gewünscht. Ich möchte jedoch nicht, dass meine Benutzer die Tabulatortaste drücken müssen, bevor sie das Fenster verwenden können.
Ich habe mit FocusManager.FocusedElement herumgespielt, bin mir aber nicht sicher, auf welches Steuerelement es eingestellt werden soll (das Fenster der obersten Ebene? Das übergeordnete Steuerelement, das das fokussierbare Steuerelement enthält? Das fokussierbare Steuerelement selbst?) Oder auf was es eingestellt werden soll.
Was muss ich tun, damit mein tief verschachteltes Steuerelement beim Öffnen des Fensters den ersten Fokus erhält? Oder noch besser, um das erste fokussierbare Steuerelement in der Tabulatorreihenfolge zu fokussieren?