2015-05-06 177 views
0

如果我有一组按钮作为一个WPF控件,例如:WPF键盘焦点和Tab键

<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> 

,并运行此应用程序,按钮1,符合市场预期,有专注于初创,但没有FocusVisualStyle,即围绕按钮的虚线。按Tab键给Button 2焦点,并给它FocusVisualStyle。再次按下选项卡使FocusVisualStyle返回到按钮1。

以下是我之后的行为:在启动时,按钮1应该没有FocusVisualStyle的焦点。按下标签将焦点放在按钮1上,并为其提供FocusVisualStyle(不是按钮2)。再次按压选项卡会循环显示相应的每个焦点和FocusVisualStyle按钮。

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

+0

我认为按tab键集中已经聚焦的东西是不好的行为。我宁愿建议你为此使用样式触发器。 – Guerudo

回答

0

其hacky的方式,但应该为你做的伎俩,如果你没有任何默认按钮在该页面。 只需设置

IsDefault="True" 

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

+0

谢谢Neeray。但是这并不符合上述必要的行为。 –