2

WPFには、いくつかのリソースディクショナリがあり、それらには、アプリのパネルとコントロールのスタイルがあります。同じ色を何度も再利用しています。私は実際に5色を持っており、それらは私のアプリに良い配色を与えます。

ただし、テーマを変更したくない場合は、RDに移動して、そこですべての色を変更する必要があります。

どこかで色を設定したいのですが、どこでどのようにしたらいいのかわかりません。1つのRDにカラータグを配置しようとしましたが、同じRDでそれを参照するとすぐにVisualStudioがクラッシュしました。

また、最善の解決策は、ユーザーが自分で色を変更できるように、アプリ自体の動的設定として色を使用できるようにすることです。

4

2 に答える 2

4

次のコードはSilverlightで機能するため、WPFで機能するはずです(おそらくいくつかの変更が加えられています-私はそれを再確認する時間がありませんでした):

リソースで色を定義します。

<SolidColorBrush x:Key="MyNamedColor" Color="DarkRed"/>

次に、いくつかのスタイルを定義します。

<Style x:Key="MyTextBlockStyle" TargetType="TextBlock">
    <Setter Property="Foreground" Value="{StaticResource MyNamedColor}"/>
</Style>
<Style x:Key="MyLineStyle" TargetType="Line">
    <Setter Property="Stroke" Value="{StaticResource MyNamedColor}"/>
</Style>

次に、コード(XAMLまたはコードビハインド)で、すべてのTextBlock、Linesなどでこれらのスタイルを使用します。

次に、色を変更する場合は、元のSolidColorBrush定義を更新するだけです。

于 2010-06-10T12:19:12.930 に答える
0

ChrisFのソリューションに加えて、実行時に動的にする場合は、DynamicResourceを使用して、実行時にリソース自体を変更できます。

于 2010-06-10T12:28:45.140 に答える