stackoverflow回答,直接贴图:What is so special about Generic.xaml?
针对WPF自定义控件以及样式总结:
1、继承自Control的控件,添加General.xmal资源文件可以创建该控件的默认样式模版。General.xmal名称不能随意修改。自定义的控件库,该资源文件必须在项目的根目录下的Therems目录中,作用是全局管理所有的控件默认模版样式。
2.不同的控件可以在非Themes目录下分别创建自己的General.xaml资源样式文件。但最终必须合并到全局的General.xaml(项目目录下的Themes文件夹中)中。
3、AssemblyInfo.cs文件添加,这是必不可少的。
[assembly: ThemeInfo( ResourceDictionaryLocation.None, //主题特定资源词典所处位置 //(未在页面中找到资源时使用, //或应用程序资源字典中找到时使用) ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 //(未在页面中找到资源时使用, //、应用程序或任何主题专用资源字典中找到时使用) )]
Generic.xaml在UI Library中的好处就是,使用这个library的项目不用再引用library的resource dictionary,UI Library中定义的custom control也能自动地找到它的默认style。