WPF按钮MouseOver触发器简短地更改背景

时间:2016-01-17 22:38:17

标签: wpf xaml

我正在尝试使用 <Style TargetType="{x:Type Button}"> <Setter Property="Background" Value="Red"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="Purple"/> </Trigger> </Style.Triggers> </Style> 触发器更改按钮的背景。我在Stackoverflow上找到了许多好的答案,但我遇到了一个奇怪的问题,我似乎无法找到其他人。我定义了以下样式

 <Button Content="Some Button"/>

并使用按钮

connect()

我的问题是,当我将鼠标悬停在背景上时会变为紫色,但是当鼠标仍然在按钮上方时,会立即更改为标准窗口蓝色。我希望背景会保持紫色,直到鼠标不再在按钮上方。有谁知道可能是什么问题?感谢。

1 个答案:

答案 0 :(得分:1)

Button的标准模板使用ButtonChrome组件,该组件负责根据当前Windows主题呈现按钮。不幸的是,ButtonChrome不是很可定制的(基本上它在OnRender处理程序中执行了所有操作),因此您希望对按钮的外观进行更大的更改,您必须编写一个custom template