2011-06-02 19 views

Respuesta

9

Algunos controles como CheckBox tener TabIndex propiedad, pero no todos los controles tienen esta propiedad, pero es posible que ellos tengan enfoque y participa en un desplazamiento, propiedad adjunta KeyboardNavigation.TabIndex se puede utilizar en estos casos. Un ejemplo de este tipo de control es Hyperlink

Aparte de esta clase KeyboardNavigation proporciona mucha otra funcionalidad para establecer un desplazamiento, al igual que el comportamiento de navegación pestaña, etc. KeyboardNavigationMode

El comportamiento de navegación de un contenedor de navegación puede ser cambiado por configurando el propiedades del teclado adjuntas TabNavigation, ControlTabNavigation, y DirectionalNavigation. Estas propiedades son de tipo KeyboardNavigationMode y son posibles valores Continuar, Local, Contenido, Ciclo, Una vez y Ninguna. El valor predeterminado es Continuar, lo que significa el elemento no es un contenedor de navegación .

http://msdn.microsoft.com/en-us/library/aa969768.aspx#Keyboard_Navigation

11

@akjoshi incluye una pieza muy importante de información sobre TaxIndex en su respuesta, pero me pareció un poco más de explicación ayudaría.

Si tiene un ItemsControl repitiendo un artículo, terminará con un tab order like this si no tiene cuidado.

enter image description here

La solución es simple:

aplicar esta propiedad unida al recipiente principal de cada elemento repetido.

KeyboardNavigation.TabNavigation="Local" 

Este enumeration tiene todo tipo de valores, pero este es el que se debe usar para los controles anidados.

Nota He configurado IsTabStop=false para el ItemsControl mismo (y no, este no es el código actual para el gráfico anterior).

<ItemsControl ItemsSource="{Binding CurrentItem.CustomsItems}" IsTabStop="False"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <ctl:CustomsItem KeyboardNavigation.TabNavigation="Local" Margin="0,0,0,8"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl>