2012-06-06 16 views
11

Ho uno stackpanel che continua a mettere a fuoco quando registro l'applicazione.Come disattivare il punto di tabulazione su un pannello di stack

Utilizzo di snoop Vedo che lo stackpanel ha un ContentControl con ContentPresenter. È il ContentControl a focalizzarsi. Come posso disabilitare questo? E perché questo comportamento predefinito?

+0

Un 'StackPanel' non dovrebbe essere in grado di ottenere attenzione se non si imposta' Focusable = "True" '(il valore predefinito è' False'). Dove si trova questo 'StackPanel',' Window'/'UserControl',' ItemsControl'? –

+0

Cosa succede quando si imposta 'Focusable =" False "' su ContentControl? – Tyrsius

risposta

17

Questo non è il comportamento di default, se è stato sovrascritto da qualche risorsa allora è possibile ripristinare con

KeyboardNavigation.IsTabStop="False" 

Oppure, in alternativa ...

FocusManager.IsFocusScope="False" 
+6

Qual è la differenza tra questi due approcci? –

7

avuto un problema simile con un DataTemplate che utilizzava uno StackPanel come contenitore. Il DataTemplate è stato quindi utilizzato per gli oggetti ListBox. Nessuno dei suggerimenti ha lavorato per me per evitare che le voci di ricevere punti di tabulazione, fino a quando ho usato il seguente sulla casella di riepilogo attuale:

KeyboardNavigation.TabNavigation="None" 
+0

Funziona bene per me! – psulek

+0

Oppure con il codice sottostante: 'KeyboardNavigation.SetTabNavigation (control, KeyboardNavigationMode.None);' – Pollitzer

+0

Come si fa in UWP? Dice "non supportato" – Nilzor