2

私のアプリケーションには、次のコードによって、ユーザー入力に基づいて背景が設定されるコントロールがあります。

m_ToolBar.Background = (m_IToolbar.UseBackColor) ?
new SolidColorBrush(m_IToolbar.BackColor): m_DefaultWindowsBrush;

ここで、m_IToolbar.UseBackColorは、色を更新するかどうかのブール値です。更新しない場合は、初期化メソッドでハードコーディングしたデフォルトのウィンドウの色に戻します。

ハードコーディング以外のデフォルトのウィンドウの色を取得する方法はありますか(ウィンドウのテーマの色を変更するとさらに問題が発生します)。

4

1 に答える 1

3

SystemColorsクラスを使用できます。具体的には、SystemColors.ControlBrushプロパティ

上記のリンクから:

WPFは、現在のWindowsシステムテーマを構成する色の見本を公開します。これらは、SystemColorsクラスで、Colors、Brushes、および対応するResourceKeysとして使用できます(ユーザーがWindowsテーマを切り替えた場合など、これらの色の変更を動的に通知するためにバインドします)。

于 2012-04-18T06:14:49.643 に答える