2012-06-06 15 views
11

Ich habe ein Stackpanel, das den Fokus immer dann erhält, wenn ich in der Anwendung rumsteige.So deaktivieren Sie den Tabstopp auf einem Stackpanel

Mit Snoop kann ich sehen, dass das Stackpanel ein ContentControl hat, das einen ContentPresenter hat. Es ist das ContentControl, das den Fokus erhält. Wie kann ich das deaktivieren? Und warum ist das Standardverhalten?

+0

A 'StackPanel' sollte nicht in der Lage sein Fokus zu erhalten, es sei denn Sie setzen' Fokussierbare = "True" '(Standard ist' False'). Wo befindet sich dieses 'StackPanel', 'Window' /' UserControl', 'ItemsControl'? –

+0

Was passiert, wenn Sie 'Focusable =" False "' auf dem ContentControl setzen? – Tyrsius

Antwort

17

Dies ist nicht das Standardverhalten, wenn es auf eine Ressource überschrieben wurde, dann können Sie es mit

KeyboardNavigation.IsTabStop="False" 

Oder alternativ zurückgesetzt ...

FocusManager.IsFocusScope="False" 
+6

Was ist der Unterschied zwischen diesen beiden Ansätzen? –

7

mit einem ein ähnliches Problem hatten DataTemplate, das ein StackPanel als Container verwendet hat. Die DataTemplate wurde dann für ListBox-Elemente verwendet. Keiner der Vorschläge für mich gearbeitet, um die Einzelteile von Empfangs Tabstopps zu verhindern, bis ich folgendes auf dem tatsächlichen Listenfeld verwendet:

KeyboardNavigation.TabNavigation="None" 
+0

Funktioniert für mich gut! – psulek

+0

Oder durch den Code hinter: 'KeyboardNavigation.SetTabNavigation (Steuerung, KeyboardNavigationMode.None);' – Pollitzer

+0

Wie machen Sie das in UWP? Sagt "nicht unterstützt" – Nilzor

Verwandte Themen