Сделать так же, как контрольную кисть, без выделения цвета - PullRequest
8 голосов
/ 20 сентября 2010

Я хочу убедиться, что не сфокусированный фон выбранного ListViewItem совпадает с сфокусированным фоном.Я знаю, что обычно это делается следующим образом:

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

Однако проблема в том, что я не хочу указывать цвет, я просто хочу, чтобы Brush возвращался статическим ресурсом, чей ключЗначение ControlBrushKey такое же, как для HighlightBrushKey.

Ответы [ 2 ]

13 голосов
/ 21 сентября 2010

Ответ таков:

<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" 
           Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" />
0 голосов
/ 20 сентября 2010

Попробуйте это ... Я знаю, что это работает, чтобы установить два свойства, чтобы соответствовать, не уверен, будет ли это работать в вашем контексте, но это стоит попробовать:

<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>

Это просто устанавливает синий фон, а передний план - фон, что было ожидаемым результатом.

...