Я разрабатываю приложение WPF, которое должно выполнить тему Windows Classic использования. Приложение создает диалоговое окно, содержащее ListBox. Когда диалоговое окно показывают, оно должно быть отключено в течение 1 с прежде, чем принять любой вход. Я выполняю это с триггером стиля, и он работает. Однако ListBox показывает белый фон, когда он отключен, от которого я, может казаться, не избавляюсь. При использовании аэро темы следующий ресурс стиля устраняет проблему:
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
Но при использовании темы Windows Classic, вновь появляется белый фон. Как я могу исправить ситуацию для Классической темы???
После дальнейших исследований я обнаружил, что классическая тема Windows использует 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>