【问题标题】:Setting the Inactive Highlight Colour of a WPF ListBox to the Active Highlight Colour将 WPF 列表框的非活动突出显示颜色设置为活动突出显示颜色
【发布时间】:2012-04-25 18:04:42
【问题描述】:

我正在尝试制作一个列表框,无论列表框是否具有焦点,突出显示的项目看起来都相同。

基本上我想将 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' 的有效值

如果我设置Color="#FF3399FF" 它工作正常。

我做错了什么?

【问题讨论】:

  • 我认为您正在尝试将Color 属性设置为Brush,而不是Color
  • 是的,我也这么认为,但现在你证实了我的怀疑,我刚刚注意到我使用 HighlightBrushKey 而不是 HighlightColorKey facepalm 我将发布完整的工作示例。谢谢!

标签: wpf highlight systemcolors


【解决方案1】:

感谢 Nicholas 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>

【讨论】:

    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多