質問

Iは、アプリケーションのアセンブリで定義されたWPFユーザーコントロールを持っています。私は別の(皮膚やテーマ)アセンブリのスタイルに基づいて、ユーザーコントロールのスタイルを設定しようとしています。私は、アプリケーションのアセンブリを参照するすべてのスタイルでのResourceDictionaryが含まれているテーマ/スキンアセンブリを望んでいません。これを行う方法はありますか?例えばます。

WPFApplicationアセンブリ

MyUserControl.xaml < - WPFユーザーコントロール

テーマアセンブリ

MyStyles.xaml < - WPFのリソースディクショナリ

私は、私が使用できると仮定します。

<Style x:Key="MyStyle">
    <Setter Property="Background" Value="Red" />
</Style>

MyStyles.xamlののResourceDictionaryで、使用ます:

<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" />

WPFApplicationアセンブリ内MyUserControl.xamlを使用する任意のウィンドウの

しかし、私はMyStyles.xamlのResourceDictionaryの中でカスタムユーザーコントロールをターゲットとすることを好むます:

<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle">
        <Setter Property="Background" Value="Red" />
    </Style>

このことは可能です??

役に立ちましたか?

解決

はい、あなたはそれを行うことができます。 がこれを確認してくださいので、私はプログラム的にそれを行う方法を示しているを投稿してください。私はControlTemplatesでそれをやっていたが、まったく同じことは、同様のスタイルに適用されます。

それは、宣言が簡単かもしれ行うには、あなたがあなたのXAMLで右StaticResourcesと名前空間を宣言し、プログラムであなたのresourcedictionariesをマージする必要があり、その後、ちょうどあなたが望むスタイル/テンプレートを参照することがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top