在我的WPF 4.0基於桌面的應用程序中,我想通過按Tab鍵添加遍歷窗口元素的能力。WPF中窗口元素的TabNavigation
這裏是我的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鍵盤上按下,使用TabIndex =「0」將焦點設置在超鏈接塊(帶有圖像和TextBlock)上,並且通過第二個Tab按鈕以用TabIndex =「1」切換焦點在元素上,我也想循環這些開關。換句話說,我希望該用戶可以通過Tab鍵盤瀏覽窗口中的元素,因爲我們經常在其他普通的WinForms應用程序中執行此操作。
現在我真的有什麼? 當我在Tab鍵上按下時超鏈接不能獲得焦點,我不能在沒有鼠標的情況下使用我的窗口。
請讓我知道我要出錯了嗎?
我將KeyboardNavigation.TabIndex添加到某些超鏈接對象,但它不起作用,我沒有在超鏈接上看到焦點邊框。我該如何解決它?我所有的超鏈接都位於Grid元素的內部。 – 2010-12-07 12:41:34