別のアセンブリからWPFのユーザーコントロールのスタイル設定
-
20-09-2019 - |
質問
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をマージする必要があり、その後、ちょうどあなたが望むスタイル/テンプレートを参照することがあります。