2009-08-14 107 views
13

我需要更改ComboBox的选择项的高亮颜色,在弹出的列表中。我发现几个教程解释如何做到这一点,但他们都要么使用混合,而我没有,并且不能获得,或涉及更改系统默认的颜色 - 这似乎是一个黑客攻击我。设置ComboBox中选定的项目高亮颜色

有人能指出我需要重写,或者告诉我,我需要设置该属性模板?

回答

23

覆盖的SystemColors.HighlightBrushKey(和SystemColors.HighlightTextBrushKey如果你想):

<ComboBox> 
    <ComboBox.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">Red</SolidColorBrush> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}">Blue</SolidColorBrush> 
    </ComboBox.Resources> 
    <ComboBoxItem>One</ComboBoxItem> 
    <ComboBoxItem>Two</ComboBoxItem> 
</ComboBox> 
+0

再次,没有办法做到这一点,不涉及改变系统颜色? – Klay 2009-08-14 15:56:35

+0

我一直在查找对SelectionBoxItemTemplate的引用。这是什么控制弹出窗口中突出显示的项目? – Klay 2009-08-14 15:59:33

+3

你并没有改变系统颜色 - 你只是在ComboBox的范围内覆盖它们。 – 2009-08-14 19:32:16

0

我已经创建了一个组合框模板的位置:

http://wpfstyles.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31388#DownloadId=78720

感谢, 维卡斯

+1

你如何得到或知道“面板”在在ComboBoxItem样式? – 2013-01-30 23:33:24

+0

@JaysonRagasa,我知道这是现在真的老了,但如果你或者其他读者从来没有发现,你可以访问在Visual Studio中的默认WPF控件模板:如何提取默认控件模板在Visual Studio?(HTTPS ://stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio)。 – Sheridan 2017-12-18 09:12:55