如何在XAML中设置MouseOver事件/触发器边框?

如何在XAML中设置MouseOver事件/触发器边框? 我希望边框在鼠标移过去的时候变成绿色,而当鼠标不在边框上时,边框变回蓝色。 为什么我不能使用下面的代码:

<Border Name="ClearButtonBorder" Grid.Column="1" CornerRadius="0,3,3,0" Background="Blue"> <Border.Triggers> <Trigger Property="Border.IsMouseOver" Value="True"> <Setter Property="Border.Background" Value="Green" /> </Trigger> <Trigger Property="Border.IsMouseOver" Value="False"> <Setter Property="Border.Background" Value="Blue" /> </Trigger> </Border.Triggers> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="X" /> </Border> 

我真的不能在WPF中获得这些触发器和样式。 这是一个阻力,不能够实现这样简单的东西。请为我提供解决scheme,并帮助我了解什么是我的代码错误? 谢谢一堆。

是的,这是令人困惑的…

根据这篇博文 ,看起来这是WPF的一个遗漏。

为了使它工作,你需要使用一种风格:

  <Border Name="ClearButtonBorder" Grid.Column="1" CornerRadius="0,3,3,0"> <Border.Style> <Style> <Setter Property="Border.Background" Value="Blue"/> <Style.Triggers> <Trigger Property="Border.IsMouseOver" Value="True"> <Setter Property="Border.Background" Value="Green" /> </Trigger> </Style.Triggers> </Style> </Border.Style> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="X" /> </Border> 

我想这个问题并不常见,因为大多数人倾向于把这种东西分解成一种风格,所以它可以用在多个控件上。