键盘焦点的样式触发器

时间:2013-11-15 14:30:37

标签: wpf xaml mvvm wpf-controls

我有一个带有多个按钮/文本框的窗口。当窗口被标记时,我想要一种方法来在控件接收类似于

的键盘焦点时对控件进行视觉样式设置
<Trigger Property="IsMouseOver" Value="True">
    <Setter Property="Background" Value="{StaticResource BasicBrush}" />
</Trigger>

我以为会有IsKeyboardFocus或类似但找不到它。有没有人知道如何在不处理代码隐藏事件的情况下执行此操作?

1 个答案:

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