wpf - 如何使用键盘 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
因此也不是制表位或导航目标。
为了解决这个问题,您可以将 a 包装Image
成 aContentControl
并使用 aPopup
来显示键盘焦点的工具提示:
<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>
推荐阅读
- java - 显示在日志数据中使用 Android 中的 AsyncTask 未显示进度对话框
- python - 计算两个解之间差异的无穷范数
- visual-studio - 在 Visual Studio 中添加引用和将 Nuget 包添加到项目之间的区别
- laravel - Laravel 和视频 mp4
- java - 如何将 char[][] 扁平化为 char[]?
- jquery-file-upload - 如何使用 jquery-fileupload multiple 将文件保存在数据库中
- mysql - SQL 查询执行缓慢
- c# - 如何隐藏添加到数据库的记录的增量插入?
- identityserver4 - IdentityServer和客户端外部登录
- r - 如何使用 seq() 创建以毫秒(分秒)为增量的日期/时间列