Generic.xaml 有什么特别之处?
Generic.xaml 有什么特别之处?
我一直在试着弄清如何组织我的ResourceDictionary文件以便重复使用和分享给团队的其他成员。
我经常遇到\"Generic.xaml\",但如果我在MSDN上查看Generic.xaml,或者只是在谷歌上搜索,我似乎只能得到提到它的博客文章和论坛问题-我似乎找不到任何真正权威和清晰的资料。
Generic.xaml和MyRandomlyNamedResourceDictionary.xaml有什么区别?看起来,我必须使用Source属性引用存储在库中的ResourceDictionaries。例如:
那么Generic.xaml究竟能提供什么优势呢?如果我不想给我的应用程序提供多个\"外观\"(即,如果我只有一个主题),它是否有任何用途?
每个WPF中的控件都有一个默认样式,其中包括控件的默认控件模板。WPF在与控件相同的程序集中的Themes文件夹中查找默认样式的特殊资源字典。默认样式的键由Control.DefaultStyleKey依赖属性提供,其默认值在Control的每个子类中被覆盖。\n\n资源字典的名称取决于当前的Windows主题,例如,在使用Aero主题的Vista上,字典称为Aero.NormalColor.xaml,在使用默认主题的XP上,它是Luna.NormalColor.xaml。如果在主题字典中找不到样式,则会在Generic.xaml中查找,即对于外观不依赖于主题的控件。\n\n这仅适用于您定义的任何自定义控件,即直接或间接从Control派生的类。您可以通过从中派生并在静态构造函数中调用DefaultStyleKeyProperty.OverrideMetadata来更改标准控件的默认样式,但然后必须提供完整的样式,包括ControlTemplate。\n\n请注意,您可以使用ThemeInfo属性告诉WPF在外部程序集中查找默认样式。外部程序集必须命名为