我试图做一个列表框,其中突出显示的项目看起来是一样的不管列表框具有焦点与否。
基本上我想设置SystemColors.ControlBrushKey颜色属性是一样的SystemColors.HighlightBrushKey颜色。
我以为我可以使用以下命令:
<ListBox>
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</ListBox.Resources>
</ListBox>
但其实这引发以下错误:
System.Windows.Markup.XamlParseException:设置属性“System.Windows.Media.SolidColorBrush.Color”引发了异常。 ---> System.ArgumentException:“#FF3399FF”不是属性的有效值“颜色”
如果设置了Color="#FF3399FF"
它工作正常。
我究竟做错了什么?
感谢尼古拉斯·W代表指着我在正确的方向 - 在这里是为ListBox的完整代码:
<ListBox Width="200" Height="200">
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" />
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style>
<Style.Triggers>
<Trigger Property="Selector.IsSelected" Value="True">
<Setter Property="TextElement.Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem IsSelected="True">Item A</ListBoxItem>
<ListBoxItem>Item B</ListBoxItem>
<ListBoxItem>Item C</ListBoxItem>
</ListBox>
文章来源: Setting the Inactive Highlight Colour of a WPF ListBox to the Active Highlight Colour