Изменить цвет фона отключенного списка в классической теме Windows - PullRequest
6 голосов
/ 07 апреля 2010

Я занимаюсь разработкой приложения WPF, которое должно работать с использованием темы Windows Classic.Приложение создает диалоговое окно, содержащее ListBox.Когда отображается диалоговое окно, оно должно быть отключено на 1 с, прежде чем принимать любой ввод.Я выполняю это с помощью триггера стиля, и это работает.Тем не менее, ListBox показывает белый фон, когда он отключен, от которого я не могу избавиться.При использовании темы Aero следующий ресурс стиля устраняет проблему:

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

Но при использовании темы Windows Classic снова появляется белый фон.Как я могу исправить ситуацию для Классической темы ???

1 Ответ

9 голосов
/ 07 апреля 2010

После дальнейших исследований я обнаружил, что тема Windows Classic использует WindowBrushKey вместо ControlBrushKey. Таким образом, это устраняет проблему как для тем Aero, так и для классических тем:

<Style TargetType="{x:Type ListBox}">
    <Style.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.WindowBrushKey}" Color="Transparent"/>
    </Style.Resources>
...