在我的 WPF 4.0 基于桌面的应用程序中,我想通过按 Tab 按钮添加遍历窗口元素的功能。
这是我的 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 键盘时,超链接没有获得焦点,我无法在没有鼠标的情况下使用我的窗口。
请让我知道,我出了什么问题?