我是一名刚接触WPF和XAML的图形设计师。我想创建一个组合框,在选择新项目之前,所选项目一直处于选中状态。同时,当用户想将鼠标悬停在其他项目上时,我想为高亮显示显示不同的颜色。我正在使用blend和c#。
如果这有点令人困惑的话,我做了一个快速的插图。谢谢
这是我的图片链接:http://www.flickr.com/photos/jeddahbalgame/6633558209/
当选择时,您可以使用触发器来指定项目应该是什么颜色
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
要更改鼠标所在项目的颜色,实际上必须覆盖组合框的HighlightBrush,因为它是系统颜色。你也可以在你的风格中这样做
<Style TargetType="{x:Type ComboBoxItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow"/>
</Style.Resources>
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
有多种方法可以做到这一点,可以在SelectionChanged
事件上使用Code Behind,也可以在该项中使用Binding和OnPropertyChanged
事件,或者将"详细信息"视图绑定到组合框的SelectedItem。
绑定是首选方法,非常有用,但需要一些时间来学习。我建议使用MVVM模式四处搜索WPF绑定教程。
MVVM:http://mark-dot-net.blogspot.com/2009/03/binding-combo-boxes-in-wpf-with-mvvm.html
如果你只是想在组合框本身上有一个不同的背景/高亮颜色,而页面上的其他颜色没有改变,那么你会想要设置组合框的样式。
您可能需要使用DataTriggers,具体取决于您想要什么,我无法判断,因为我无法查看您的图像。
样式化:http://www.uxpassion.com/2008/09/styling-wpf-listbox-highlight-color/
DataTriggers:如何使用WPF突出显示组合框中的项目?