WPF样式按钮MouseOver问题
我试图在一个按钮上做一个简单的鼠标hover效果,它确实在鼠标结束时改变颜色,但颜色立即改为默认按钮背景……我怎样才能覆盖这种行为?
这是我的代码:
Style myBtnStyle = new Style(); Trigger bla = new Trigger() { Property = IsMouseOverProperty, Value = true }; bla.Setters.Add(new Setter(Control.BackgroundProperty, Brushes.Black)); myBtnStyle.Triggers.Add(bla); button2.Style = myBtnStyle;
根据这篇文章 ,这个花哨的动画内置并删除它,你需要覆盖Button
的ControlTemplate
。 幸运的是,这并不难。 我使用这篇文章作为源材料,并提出了以下Style
给你的想法。
更新:如果您在代码中应用Style
并且不想使用ResourceDictionary
(可能是更好的方法),则可以使用XamlReader.Load
动态加载Style
:
const string xaml = @" "; var encoding = new ASCIIEncoding(); var bytes = encoding.GetBytes(xaml); var style = (Style)XamlReader.Load(new MemoryStream(bytes)); Button1.Style = style;
覆盖ButtonChrome主题会更容易。
创建一个模板并删除RenderMouseOver =“{TemplateBinding IsMouseOver}”
然后添加自己的鼠标hover处理
那应该解决它! ?
上述就是C#学习教程:WPF样式按钮MouseOver问题分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/983000.html