【问题标题】:WPF Keyboard Focus and TabbingWPF 键盘焦点和选项卡
【发布时间】:2015-05-06 09:59:50
【问题描述】:

如果我有一组按钮作为 wpf 控件,例如:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
    <Button Content="Button 1"/>
    <Button Content="Button 2"/>
</StackPanel>
</UserControl>

并运行此应用程序,Button 1 与预期一样,专注于启动,但没有 FocusVisualStyle,即按钮周围的虚线。按 tab 键给 Button 2 焦点,并给它 FocusVisualStyle。再次按 Tab 键将焦点返回到具有 FocusVisualStyle 的按钮 1。

这是我所追求的行为:在启动时,按钮 1 应该有焦点,没有 FocusVisualStyle。按选项卡将焦点保持在按钮 1 上并为其提供 FocusVisualStyle(不是按钮 2)。再次按 Tab 键会在按钮之间循环,从而相应地提供每个焦点和 FocusVisualStyle。

理想情况下,我想在 XAML 中实现这一点,但不确定是否可以尝试通过焦点管理器设置焦点元素的各种组合。有什么建议可以实现吗?

【问题讨论】:

  • 我认为按 Tab 键来聚焦已经聚焦的东西是一种不好的行为。我宁愿建议您为此目的使用样式触发器。

标签: wpf focus


【解决方案1】:

它的 hacky 方式,但如果您在该页面中没有任何默认按钮,则应该为您解决问题。 只需设置

IsDefault="True" 

对于第一个按钮。如果这会干扰屏幕中的任何其他控制行为,那么您必须在 XAML 中编写一个行为,以在选项卡上添加删除 IsDefault。

【讨论】:

  • 谢谢尼雷。但这不满足上述必要行为。
猜你喜欢
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2020-03-22
  • 2021-12-07
  • 2010-10-19
  • 1970-01-01
  • 2015-08-27
  • 2014-07-05
相关资源
最近更新 更多