【发布时间】:2014-05-09 19:24:28
【问题描述】:
使用 ComboBox 样式设置 ComboBoxItem 高亮颜色最直接的方法是什么?
例如,我希望能够编写如下内容:
<my:ExtendedComboBox ItemBackgroundHighlight="Green" />
<my:ExtendedComboBox ItemBackgroundHighlight="Red" />
并让每个 ComboBox 为其鼠标悬停/选定的突出显示具有相应的颜色。
编辑
我可能已经猜到了,there is a simple way to do this in WPF,但是这在 Silverlight 中是不可能的。
【问题讨论】:
-
如果您已经在为
ComboBox使用自定义模板,我只会在 VisualStateManager 为 MouseOver/Selected 状态激活它们时找到当前提供该视觉的对象,绑定它的Background或Fill或诸如Tag之类的临时属性在{TemplateBinding Tag}之类的模板级别并执行<your:ComboBox Tag="Green"/>等。发布为评论而不是答案,因为我没有太多时间立即进行思考进入它。 -
@ChrisW。谢谢...关于这个的棘手之处在于,由于
ComboBoxItem是一个单独的控件,似乎没有简单的方法将属性(ItemBackgroundHighlight)从父ComboBox 传递给子ComboBoxItems。在下面的回答中,我通过在“GetContainerForItemOverride”中应用从父级到子级的绑定解决了这个问题。 -
啊,是的,我必须放弃试图快速完成这些事情,而不是一目了然。很高兴你找到了补救措施,干杯
标签: c# wpf silverlight xaml