我有一个带有多个按钮/文本框的窗口。当窗口被标记时,我想要一种方法来在控件接收类似于
的键盘焦点时对控件进行视觉样式设置<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource BasicBrush}" />
</Trigger>
我以为会有IsKeyboardFocus
或类似但找不到它。有没有人知道如何在不处理代码隐藏事件的情况下执行此操作?
答案 0 :(得分:4)
正如布莱恩在评论中所说,听起来你正在寻找FrameworkElement.FocusVisualStyle
property。这使您可以指定Style
,其唯一目的是确定ControlTemplate
,以指定应用于当前具有焦点的控件的Adorner
应具有的内容。以下是MSDN上链接页面的简短示例:
<Style x:Key="MyFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-2" StrokeThickness="1" Stroke="Red"
StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
此Style
会在每个已应用的焦点控件周围添加红色Rectangle
。