В моем настольном приложении WPF 4.0 я хочу добавить возможность перемещаться по элементам окна, нажав Tab-button.TabNavigation на элементах окна в WPF
Вот фрагмент моего XAML:
<!--main body layout-->
<StackPanel x:Name="BodyLayout"
Style="{StaticResource Body_Block}">
<!--teaser block-->
<Grid x:Name="TeaserGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0"
Grid.Row="0"
Style="{StaticResource Body_Teaser_Centering}">
<Hyperlink Style="{StaticResource Body_Teaser_Hyperlink}"
Focusable="True"
KeyboardNavigation.TabIndex="0"
Click="Call_WinOffences_Click">
<Image Source="Resources/teaser_offences.png"
Style="{StaticResource Body_Teaser_Image}" />
<LineBreak />
<TextBlock Text="Offences"
Style="{StaticResource Body_Title}" />
</Hyperlink>
</TextBlock>
<TextBlock Grid.Column="1"
Grid.Row="0"
Style="{StaticResource Body_Teaser_Centering}">
<Hyperlink Style="{StaticResource Body_Teaser_Hyperlink}"
Focusable="True"
KeyboardNavigation.TabIndex="1"
Click="Call_WinEvents_Click">
<Image Source="Resources/teaser_events.png"
Style="{StaticResource Body_Teaser_Image}" />
<LineBreak />
<TextBlock Text="Events"
Style="{StaticResource Body_Title}" />
</Hyperlink>
</TextBlock>
</Grid>
</StackPanel>
Что именно мне нужно сделать? Я хочу открыть это окно и нажав первый раз на клавиатуре Tab, чтобы установить фокус на блок гиперссылок (с помощью Image и TextBlock) с помощью TabIndex = «0» и вторым нажатием Tab, чтобы переключить фокус на элемент с помощью TabIndex = «1», Также я хочу переключить эти переключатели. Другими словами, я хочу, чтобы этот пользователь мог перемещаться по элементам в моем окне с помощью клавиатуры Tab, поскольку мы регулярно делаем это в любом другом обычном приложении WinForms.
Что на самом деле у меня сейчас? Когда я нажимаю на клавиатуру Tab, гиперссылки не получают фокуса, и я не могу работать с моим окном без мыши.
Пожалуйста, сообщите мне, что я собираюсь сделать неправильно?
Я добавил KeyboardNavigation.TabIndex к некоторому объекту гиперссылок, но он не работает, я не вижу границы фокуса на гиперссылке. Как я могу это исправить? Все мои гиперссылки находятся внутри элемента Grid. – 2010-12-07 12:41:34