如何使用键盘 Tab 键导航或选择 WPF 图像?



WPF 图像无法通过键盘访问。要求是工具提示中的 Tab 键焦点必须打开并保持,直到 Tab 键焦点退出。如何在 Xaml 中实现它?

代码如下所示,

<Image Height="17"
x:Name="tabinfoIcon"
Stretch="Fill"
Width="17"
Cursor="Hand"
Margin="5">
<Image.ToolTip>
<ToolTip Background="#FFFEFEFE"
Foreground="#FF5E5D5D"
Placement="MousePoint"
x:Name="tabToolTip">
<TextBlock Width="200"
Padding="10,10"
TextWrapping="WrapWithOverflow"
Text="{x:Static resx:Strings.TabToolTipText}">
</TextBlock>
</ToolTip>
</Image.ToolTip>
</Image>

Image不是Control,因此不是制表位或导航目标。

若要解决此问题,可以将Image包装到ContentControl中,并使用Popup在键盘焦点上显示工具提示:

<StackPanel>
<Popup IsOpen="{Binding ElementName=ImagePresenter, Path=IsKeyboardFocusWithin, Mode=OneWay}"
PlacementTarget="{Binding ElementName=ImagePresenter}" 
AllowsTransparency="True">
<TextBlock Text="{x:Static resx:Strings.TabToolTipText}" />
</Popup>
<ContentControl x:Name="ImagePresenter" HorizontalAlignment="Left" VerticalAlignment="Top">
<Image Height="100" x:Name="tabinfoIcon" 
Stretch="Fill"
Width="100"
Cursor="Hand"
Margin="5">
<Image.ToolTip>
<ToolTip Background="#FFFEFEFE"
Foreground="#FF5E5D5D"
Placement="MousePoint"
x:Name="tabToolTip">
<TextBlock Width="200"
Padding="10,10"
TextWrapping="WrapWithOverflow"
Text="{x:Static resx:Strings.TabToolTipText}">
</TextBlock>
</ToolTip>
</Image.ToolTip>
</Image>
</ContentControl>
</StackPanel>

最新更新