クラス ライブラリ (WPF ユーザー コントロール ライブラリ) を使用して、プロジェクト ソリューション内の他の (C#-) アプリケーションが使用するユーザー コントロールをホストします。これらのコントロールで、クラス ライブラリの最上位スコープにある XAML ControlTemplates を使用する必要があります。ControlTemplates は、クラス ライブラリの外部で使用する必要はありません。
テンプレート宣言は次のとおりです。
<ControlTemplate TargetType="{x:Type Button}" x:Key="TemplateImageButtonSmall">
<Grid>
<Image Name="img" Source="/PSCommonUI;component/Images/Buttons/ButtonMinus_normal.png"/>
</Grid>
</ControlTemplate>
次に、クラス ライブラリに次のようなユーザー コントロールがあります。
<Button Height="57" Margin="10,0,6,5" Name="button3" Template="{StaticResource TemplateImageButtonSmall}" Width="82">
アプリケーションでは、App.xaml ファイルを使用してテンプレートを定義できます。ただし、クラス ライブラリにはこのオプションがありません。
Web を検索したところ、generic.xaml ファイルの使用、ComponentResourceKey、リソース ファイルのマージ、および誇張して複雑であると思われるその他のものを含むいくつかの回答が見つかりました。
また、テーマの定義 (一般的なリソース) はクラス ライブラリに常駐してはならないことも読みました。
しかし、ホストされているコントロールのために、このクラス ライブラリでのみいくつかのテーマが必要な場合、ベスト プラクティスはどのようになりますか?
前もって感謝します、
ジュリアン