2012-06-06 28 views
11

Mam pulpit sterujący, który utrzymuje ostrość, gdy ustawiam zakładkę w aplikacji.Jak wyłączyć blokadę tabulatora na panelu stosowym

Za pomocą snoop Widzę, że stackpanel ma ContentControl, który ma ContentPresenter. To właśnie ContentControl skupia się na tym. Jak mogę to wyłączyć? I dlaczego jest to domyślne zachowanie?

+0

'StackPanel' nie powinny być w stanie uzyskać ostrość, chyba że ustawisz' Regulowana = "Prawda" '(domyślnie jest' False'). Gdzie znajduje się 'StackPanel',' Window'/'UserControl',' ItemsControl'? –

+0

Co stanie się, gdy ustawisz "Focusable =" False "" w narzędziu ContentControl? – Tyrsius

Odpowiedz

17

Nie jest to zachowanie domyślne, jeśli zostało zastąpione przez jakiś zasób następnie można go wyzerować z

KeyboardNavigation.IsTabStop="False" 

lub alternatywnie ...

FocusManager.IsFocusScope="False" 
+6

Jaka jest różnica między tymi dwoma podejściami? –

7

miał podobny problem z DataTemplate, który korzystał z StackPanel jako kontenera. DataTemplate był następnie używany do elementów ListBox. Żadna z sugestii pracował dla mnie, aby zapobiec przedmioty od otrzymania tabulacji, dopóki nie stosuje się następującą na rzeczywistym polu listy:

KeyboardNavigation.TabNavigation="None" 
+0

Działa dla mnie dobrze! – psulek

+0

Lub według kodu: 'KeyboardNavigation.SetTabNavigation (control, KeyboardNavigationMode.None);' – Pollitzer

+0

Jak to zrobić w UWP? Mówi "nieobsługiwane" – Nilzor