C# 为什么不在标签上开火

C# 为什么不在标签上开火,c#,wpf,events,xaml,controls,C#,Wpf,Events,Xaml,Controls,我只想定义一个触发器,当 专注,但它不起作用。对按钮执行同样的操作是可以的。有什么不对劲吗?!?!我在Border和textblock上也遇到了同样的问题 更新代码xaml: 并非所有控件在默认情况下都是可聚焦的,请将focusable设置为trueans,看看是否有帮助 您可能会遇到的一个问题是,默认情况下,标签不会从鼠标事件接收焦点 我不知道是否有唯一干净的XAML方法来设置焦点,但您可以处理鼠标事件: <Label Focusable="True" Content="Test" M

我只想定义一个触发器,当 专注,但它不起作用。对按钮执行同样的操作是可以的。有什么不对劲吗?!?!我在Border和textblock上也遇到了同样的问题

更新代码xaml:


并非所有控件在默认情况下都是可聚焦的,请将
focusable
设置为
true
ans,看看是否有帮助

您可能会遇到的一个问题是,默认情况下,标签不会从鼠标事件接收焦点

我不知道是否有唯一干净的XAML方法来设置焦点,但您可以处理鼠标事件:

<Label Focusable="True" Content="Test" MouseLeftButtonUp="Label_MouseLeftButtonUp">
    <Label.Style>
        <Style TargetType="Label">
            <Style.Triggers>
                <Trigger Property="IsFocused" Value="True">
                    <Setter Property="Background" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Label.Style>
</Label>

它仍然不工作后,设置为真,请看我的代码上面,它不工作。如果标签或边框无法从鼠标接收焦点,如何使其接收?请参阅我对您的问题的评论。是的,我明白了,因此如何使其接收焦点,我需要在鼠标单击后将其高亮显示我在回答中添加了“丑陋代码隐藏”选项。仅XAML可能比较困难。您打算如何使标签具有焦点?
<Label Focusable="True" Content="Test" MouseLeftButtonUp="Label_MouseLeftButtonUp">
    <Label.Style>
        <Style TargetType="Label">
            <Style.Triggers>
                <Trigger Property="IsFocused" Value="True">
                    <Setter Property="Background" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Label.Style>
</Label>