我有一个WPF标签,想要在鼠标悬停或悬停时改变它的外观.这个问题展示了如何使用TextBlock来完成它而不是我想要的东西,使用触发器在鼠标悬停时设置文本块前景.这是不同的,因为Label改变前景不起作用.
使用您链接的问题中的示例,但更改单词TextBlock可以Label正常更改Foreground,因此如果您真的无法使其工作,则必须提供更多信息.试试这个:
<Label Content="My colour changes just fine" HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">
<Label.Style>
<Style TargetType="Label">
<Setter Property="Foreground" Value="Blue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
Run Code Online (Sandbox Code Playgroud)
请注意,如果你设置了Foreground实际的Label元素,就像你在你的答案一样,而不是在Style那么这将停止Trigger从工作,所以不这样做:
<Label Content="My colour changes just fine" HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" Foreground="Black">
<Label.Style>
<Style TargetType="Label">
<Setter Property="Foreground" Value="Blue" /> <!-- This won't work -->
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red" /> <!--This won't work-->
</Trigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
Run Code Online (Sandbox Code Playgroud)