カスタム コントロールを作成するクラス ライブラリ アセンブリを作成し、generic.xaml ファイルで既定のスタイルを定義しました。
多くの人が投稿している限り、これは非常に一般的な問題のようです。しかし、私の場合、有用な答えが見つかりませんでした。
- generic.xaml は Themes フォルダーにあります。
- Generix.xaml ファイルの Build Action は Page に設定されています。
- ThemeInfo は AssemblyInfo.cs で適切に定義されています。
テスト アプリケーションで、カスタム コントロール アセンブリの generic.xaml ファイルをアプリケーションの App.xaml ファイルに手動でマージすると、次のようになります。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
カスタム コントロールは適切にテーマ化されますが、generic.xaml を手動でマージしないと、コントロールは既定の Windows テーマで表示されます。
私が何を忘れているか、および/または間違っているか教えてください。
追加情報:
私の ThemeInfo アセンブリ属性は次のように定義されています。
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(注: 結果は、ThemeInfo 属性のパラメーターをどのように組み合わせても同じです)
Themes フォルダーには、generic.xaml ファイルの他に 2 つの .xaml ファイルがあります。
- Themes フォルダーには、別の .xaml ファイルを含むサブフォルダーがあります。