gpt4 book ai didi

c# - 为什么 IsFocused 没有在 Label 上触发

转载 作者:行者123 更新时间:2023-11-30 22:37:06 26 4
gpt4 key购买 nike

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

更新代码xaml:

  <Window.Resources>
<SolidColorBrush x:Key="GridLineBrush" Color="#8DAED9" />
<SolidColorBrush x:Key="HeaderWeekDayBackground" Color="#A5BFE1" />
<Style x:Key="borderStyle" TargetType="Control">
<Setter Property="Background" Value="{StaticResource HeaderWeekDayBackground}" />
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>

<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Style="{StaticResource borderStyle}"
Grid.Row="0" >
</Button>
<Label Focusable="True" Style="{StaticResource borderStyle}"
Grid.Row="1" >
</Label>
</Grid>
</Window>

最佳答案

默认情况下并非所有控件都可聚焦,将 Focusable 设置为 true 并查看是否有帮助。

您可能会遇到的一个问题是,默认情况下 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>
//Note that this is not a "proper" click.
private void Label_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var label = sender as Label;
label.Focus();
}

关于c# - 为什么 IsFocused 没有在 Label 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com