WPF键盘焦点和选项卡

WPF键盘焦点和选项卡,wpf,focus,Wpf,Focus,如果我有一组按钮作为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 Con

如果我有一组按钮作为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>

然后运行这个应用程序,按钮1,正如预期的那样,专注于启动,但没有聚焦视觉样式,即,按钮周围的虚线。按tab键可为按钮2提供焦点,并为其提供FocusVisualStyle。再次按tab键将焦点返回到具有FocusVisualStyle的按钮1

以下是我所追求的行为:在启动时,按钮1应该有焦点而不是焦点视觉样式。按tab键可将焦点保持在按钮1上,并为其提供焦点视觉样式(而不是按钮2)。再次按tab键可在按钮之间循环切换,相应地给出每个焦点和焦点视觉样式


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

这是一种令人讨厌的方式,但如果你在该页面中没有任何默认按钮,应该可以帮你实现。 刚定

IsDefault="True" 

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

谢谢你,雷。但这并不能满足上面描述的必要行为。我认为按tab键来聚焦已经聚焦的东西是一种不好的行为。我宁愿建议您为此使用样式触发器。