6

Windows クラシック テーマを使用して実行する必要がある WPF アプリケーションを開発しています。アプリケーションは、ListBox を含むダイアログ ボックスを作成します。ダイアログ ボックスが表示されたら、入力を受け入れる前に 1 秒間無効にする必要があります。スタイルトリガーでこれを達成していますが、うまくいきます。ただし、ListBox を無効にすると白い背景が表示され、これを取り除くことができないようです。aero テーマを使用する場合、次のスタイル リソースで問題が修正されます。

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

ただし、Windows クラシック テーマを使用すると、白い背景が再び表示されます。クラシックテーマの状況を改善するにはどうすればよいですか???

4

1 に答える 1

9

さらに調査した結果、Windows クラシック テーマでは ControlBrushKey ではなく WindowBrushKey が使用されていることがわかりました。したがって、これにより、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>
于 2010-04-07T18:12:56.193 に答える