组合框高亮显示项目,还高亮显示浏览的项目



我是一名刚接触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突出显示组合框中的项目?

相关内容

  • 没有找到相关文章

最新更新