首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ComboBox Hightlight项目,并突出显示已浏览的项目

ComboBox Hightlight项目,并突出显示已浏览的项目
EN

Stack Overflow用户
提问于 2012-01-04 07:49:36
回答 2查看 2.4K关注 0票数 0

我是一个图形设计师谁是WPF和XAML的新手。我想创建一个ComboBox,其中选定的项保持选中状态,直到选择了一个新项。同时,当用户想要将鼠标移到其他项目上时,我希望为突出显示显示不同的颜色。我使用的是blend和c#。

如果这有点令人困惑,我做了一个简单的说明。谢谢!!

这是我的图片的链接:http://www.flickr.com/photos/jeddahbalgame/6633558209/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-04 11:27:18

您可以使用触发器来指定选中项目时项目应为何种颜色

代码语言:javascript
复制
<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>

要更改鼠标所在项目的颜色,实际上必须覆盖ComboBox的HighlightBrush,因为它是系统颜色。你也可以在你的风格中做到这一点

代码语言:javascript
复制
<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>
票数 3
EN

Stack Overflow用户

发布于 2012-01-04 08:36:55

有多种方法可以做到这一点,既可以对SelectionChanged事件使用代码隐藏,也可以使用该项中的绑定和OnPropertyChanged事件,或者将详细信息视图绑定到组合框的SelectedItem。

绑定是首选方法,非常有用,但需要一些时间来学习。我建议搜索WPF绑定教程,使用MVVM模式。

移动虚拟机:http://mark-dot-net.blogspot.com/2009/03/binding-combo-boxes-in-wpf-with-mvvm.html

如果您只是想让组合框本身具有不同的背景/突出显示颜色,而页面上没有任何其他变化,那么您需要设置ComboBox的样式。

你可能需要使用DataTriggers,这取决于你到底想要什么,我不知道,因为我不能查看你的图像。

风格化:http://www.uxpassion.com/2008/09/styling-wpf-listbox-highlight-color/ (是的,它很难看,但是基本的东西在那里)

DataTriggers:How do you highlight an item in a combobox using WPF?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8720308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档