我想更改背景(鼠标移到)当我将鼠标移到组合框上时的颜色。
我读过 stackoverflow 上的很多帖子,并尝试过这样的代码:
<ComboBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"/>
</ComboBox.Resources>
这就是结果:
但这不是我想要的。我想改变这个背景:
我怎样才能做到这一点?
朴素的解决方案:
只需将画笔添加到资源中并从 ComboBox 的 Background 属性(通过 StaticResource 绑定)引用它即可:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<SolidColorBrush x:Key="BackgroundColorKey" Color="Red"/>
<Style TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource BackgroundColorKey}" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<ComboBox Height="25"/>
</Grid>
Problem:
选择项目后,背景颜色将重置回默认颜色。解决此问题的唯一解决方案是覆盖组合框的默认模板。
Fix:
修改默认的ComboBox模板。
ComboBox 默认模板位于 msdn 上。链接在这里 -http://msdn.microsoft.com/en-us/library/ms752094(v=vs.100).aspx。请参阅“组合框控件模板示例”部分。
相关链接:
MouseOver 突出显示样式在一秒钟后返回默认值(由 Aero 引起?)
http://social.msdn.microsoft.com/Forums/en/wpf/thread/a18891e9-8879-4819-9679-247341782f60
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)