私のWPF 4.0デスクトップベースのアプリケーションでは、Tabキーを押してウィンドウの要素を通過する機能を追加したいと考えています。WPFのウィンドウ要素のTabNavigation
<!--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>
私は正確に何が必要です:ここで
は私のXAMLの断片でありますか? TabIndex = "1"の要素のフォーカスを切り替えるには、TabIndex = "0"とTabキーを押しながらハイパーリンクブロック(ImageとTextBlock)でフォーカスを設定するTabキーを押し、このウィンドウを開きます。また、私はこのスイッチを繰り返す必要があります。言い換えれば、他の通常のWinFormsアプリケーションでこれを行うためには、Tabキーボードで私のウィンドウ内の要素をナビゲートすることができます。
実際には現在何がありますか? Tabキーを押したときハイパーリンクにフォーカスが得られず、マウスなしでウィンドウを操作できません。
私に間違っていることを教えてください。
ハイパーリンクオブジェクトにKeyboardNavigation.TabIndexを追加しましたが、機能しません。ハイパーリンクにフォーカス枠が表示されません。どうすれば修正できますか?私のすべてのハイパーリンクは、Grid要素の内側にあります。 –
@Toucki:ハイパーリンクにFocusable = "True"を追加しましたか?問題が解決しない場合は、ハイパーリンク用のxamlを投稿できますか? –
それでも動作しません。私は、このトピックの問題の本文に、より多くのXAMLコードを追加しました。私が間違っていることを指摘できますか?前もって感謝します。 –