在 WPF 项目的 XAML 中更改其 GotFocus 事件的用户控件边框

Change usercontrol border on its GotFocus-event within the XAML of a WPF-Project

我有一个 UserControl,它包含一个包含 Border 的 Grid:

<UserControl Focusable="True" Name="uctrlScenePanel">
    <Grid MouseDown="Grid_MouseDown">
      <Border BorderThickness="0" BorderBrush="Black">
      </Border>
    </Grid>

我现在想在用户控件 "uctrlScenePanel" 获得焦点后更改 Border-Thickness,但我无法让它工作,而且我真的找不到有用的 Eventtrigger-Tutorials 可以理解,因为我我对 WPF 很陌生。

编辑: d.moncada的回答很有帮助!我的 xaml 现在看起来像这样:

       <Border BorderBrush="Black">
            <Border.Style>
                <Style TargetType="Border">
                    <Setter Property="BorderThickness" Value="0" />
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsKeyboardFocusWithin, ElementName=uctrlScenePanel}" Value="true">
                            <Setter Property="BorderThickness" Value="2" />
                            <Setter Property="Background" Value="Green" />
                        </DataTrigger>
                        <DataTrigger Binding="{Binding IsKeyboardFocusWithin, ElementName=uctrlScenePanel}" Value="false">
                            <Setter Property="BorderThickness" Value="0" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
        </Border>

我还有问题,因为用户控件的聚焦行为很奇怪,但那是另一回事了...这个问题已为我解决,感谢您的教训 ;)

您可以使用 DataTrigger.

绑定到 UserControl IsFocused 属性
<UserControl Focusable="True" x:Name="uctrlScenePanel">
    <Grid MouseDown="Grid_MouseDown">
      <Border BorderBrush="Black">
        <Broder.Style>
            <Style TargetType="Border">
                <Setter Property="BorderThickness" Value="1"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsFocused, ElementName=uctrlScenePanel}" Value="True">
                        <Setter Property="BorderThickness" Value="0"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
      </Border>
    </Grid>
</UserControl>