更改选定的颜色列表框

我想更改选定背景并让它显示带圆角的渐变。 我搜索了Google,发现有些人确实通过覆盖默认颜色来更改所选颜色。 有什么方法可以做到这一点吗? 我在想是否有办法在选择项目时显示圆形角落边框作为背景?

这是ListBoxItem的默认样式(我们想要更改它)。 如果您通过右键单击对象和时间轴控件中的listboxitem来使用Expression Blend 4,则可以“检索”此样式。

 

让我们提出一些重要的部分,以便您自己学会这样做。

  

这是Style声明的开始。 我们给它了ax:Key,因此可以从资源字典中检索它,并且我们为ListBoxItem设置了TargetType。

现在,我们想要寻找我们想要改变的风格部分。 在这种情况下,我们将继续寻找新ControlTemplate上MultiTrigger样式的一部分。

         

此MultiTrigger需要2个属性才能匹配值以便激活。 激活此触发器时,会将背景颜色更改为Value =“…”,将前景颜色更改为Value =“…”。 为了获得渐变背景,我们需要将Background Value =“…”中的值更改为其他画笔。 让我们创建一个快速的小渐变画笔(也非常多彩!)

       

所以现在让我们将其应用于此触发器的背景。

  

现在,当此样式应用于ListBoxItem,并且ListBoxItem IsSelected = True(和Selector.IsSelectionActive = false)时,您将在listboxitem上看到渐变背景。

现在,你也想要圆角。 如果我们走到ControlTemplate的顶部,我们将看到边界声明。

  

在该声明中,我们想要添加一个CornerRadius属性来获取ListBoxItem上的圆角。

 CornerRadius="5" 

现在,您应该能够创建一个角半径,线性渐变背景listboxitem。 我希望你能够自己从这里继续。

我在这里的博客上有一个例子。 它会覆盖ControlTemplate及其使用的颜色。