使高亮笔刷与控制笔刷相同而不指定颜色

时间:2010-09-20 17:02:57

标签: wpf resources background listviewitem

我想确保选定的ListViewItem的非聚焦背景与聚焦背景相同。我知道这样做的常用方法如下:

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Blue"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Blue"/>

然而,问题是我不想指定颜色,我只想要将其键为ControlBrushKey的静态资源返回的Brush与HighlightBrushKey的相同。

2 个答案:

答案 0 :(得分:13)

答案是:

<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" 
           Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" />

答案 1 :(得分:0)

试试这个...我知道它可以设置两个属性来匹配,不确定它是否适用于你的上下文,但它值得一试:

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" 
                 Color="Blue"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" 
                 Color="{DynamicResourse SystemColors.HighlightBrushKey.Color}"/>

我使用TextBox作为游乐场测试了这个。我不确定你的确切应用,但这是我的测试标记:

<TextBox>
    <TextBox.Background>
        <SolidColorBrush  x:Key="{x:Static SystemColors.HighlightBrushKey}" 
                Color="Blue"></SolidColorBrush>
    </TextBox.Background>
    <TextBox.Foreground>
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" 
                Color="{DynamicResource SystemColors.HighlightBrushKey.Color}" />
    </TextBox.Foreground>
</TextBox>

这只是将背景设置为蓝色,将前景设置为背景,这是预期的结果。