我已经google了很多,但我没有发现这种情况。
我有几个不同Button
颜色的扁平Background
,但悬停颜色对所有颜色都相同!我希望每个Button
根据其背景有自己的悬停颜色,例如稍微轻一些。
我尝试制作自定义样式并减少Opacity
IsMouseOver
触发器中的BackColor
,但这不是我想要的,因为它也会影响按钮的内容,而不仅仅是背景颜色!< / p>
Win32 C#应用程序具有Flat Appearance属性,可以自动执行该操作。当您为{{1}}选择颜色并将按钮设置为Flat时,它会处理所有状态颜色(悬停颜色,禁用颜色......),但是我不知道如何在WPF中执行此操作
提前谢谢
答案 0 :(得分:3)
the hover color is the same for all of them!
这可能是因为在Button
的风格中,当Background
为IsMouseOver
时,您有一次 True
次刷。
because it also affects the content of the button and not only the background color
这可能是因为当您动画的面板(可能是Border
)也是内容控件的父级(例如ContentPresenter
,ContentControl
)时,{{1此内容控件也会受到影响。
要解决这些问题,您只需要在与内容控件相同的级别创建一些可视元素(例如Opaciy
,Rectangles
),并根据激活的触发器为它们设置动画。< / p>
这是一个简单的例子。
Borders
以下是风格的外观。
希望这有帮助! :)
答案 1 :(得分:0)
检查出来:
http://learnwpf.com/post/2006/03/06/How-do-I-change-an-items-appearance-on-mouseover-in-WPF.aspx
对于Background,您只需设置“Background”属性,而不是设置“BitmapEffect”属性。
希望这有帮助
此致