Изменить цвет фона отключенного списка в классической теме Windows

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

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

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


person Greg Ferreri    schedule 07.04.2010    source источник


Ответы (1)


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

<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>
person Greg Ferreri    schedule 07.04.2010