我制作了一个类库程序集,在其中创建了自定义控件,并在 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 文件旁边还有另外两个 .xaml 文件。
- Themes 文件夹中有一个子文件夹,它本身包含另一个 .xaml 文件。