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>