键盘触发的样式触发器

Bri*_*ett 0 wpf xaml mvvm wpf-controls

我有一个带有多个按钮/文本框的窗口。当通过选项卡浏览窗口时,我想要一种在控件收到键盘焦点时类似于控件的视觉样式

<Trigger Property="IsMouseOver" Value="True">
    <Setter Property="Background" Value="{StaticResource BasicBrush}" />
</Trigger>
Run Code Online (Sandbox Code Playgroud)

我以为会有一个IsKeyboardFocus或类似的但找不到。有谁知道一种无需处理后台代码中事件的方法?

She*_*dan 5

正如Brian在评论中建议的那样,听起来您正在寻找该FrameworkElement.FocusVisualStyle物业。这使您可以指定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>
Run Code Online (Sandbox Code Playgroud)

Style将在Rectangle应用它的每个焦点控件周围添加一个红色。