- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试弄清楚如何组织我的 ResourceDictionary 文件以供重复使用并与团队的其他成员共享。
我不断遇到“Generic.xaml”,但如果我在 MSDN 上查找 Generic.xaml 或只是进行 Google 搜索,我似乎只会得到碰巧提到它的博客文章和论坛问题 - 我可以'似乎没有想到任何真正权威和清晰的东西。
Generic.xaml 和 MyRandomlyNamedResourceDictionary.xaml 之间有什么区别?看起来无论哪种方式,我都必须使用 Source 属性引用存储在库中的 ResourceDictionaries。例如:
<Application.Resources>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml"
</Application.Resources>
那么 Generic.xaml 到底提供了什么优势呢?如果我不想给我的应用程序提供多种“外观”(即,如果我只有一个主题),它有什么用途吗?
最佳答案
WPF 中的每个控件都有一个默认样式,除其他外,它还提供控件的默认 ControlTemplate
。 WPF 在与控件位于同一程序集中的 Themes 文件夹中的特殊资源字典中查找默认样式。默认样式的键由 Control.DefaultStyleKey
提供。依赖属性,其默认值在 Control 的每个子类中都被覆盖。
资源字典的名称取决于当前的 Windows 主题,例如在使用 Aero 主题的 Vista 上,字典名为 Aero.NormalColor.xaml,在使用默认主题的 XP 上,字典名为 Luna.NormalColor.xaml。如果在主题字典中找不到该样式,它将在 Generic.xaml 中查找,即查找外观不依赖于主题的控件。
这仅适用于您定义的任何自定义控件,即直接或间接从 Control 派生的类。您可以通过从标准控件派生并调用 DefaultStyleKeyProperty.OverrideMetadata
来更改标准控件的默认样式。在静态构造函数中,但您必须提供完整的样式,包括 ControlTemplate。
请注意,您可以使用 ThemeInfo 属性告诉 WPF 在外部程序集中查找默认样式。外部程序集必须命名为 <
您的大会 >
。 <
主题名称 >
.dll 例如演示框架.Aero.dll。
关于wpf - Generic.xaml 有什么特别之处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1228875/
我已经可以在其中输入一些附加文本了mydomain/wiki/Special:UserLogin。我添加了一句话: In order to apply for an account send an m
有人可以解释以下脚本输出背后的逻辑吗? import numpy if(numpy.dtype(numpy.float64) == None): print "Surprise!!!!" 谢谢
是我还是 gmail bulls**t?在 outlook/浏览器上,我的电子邮件是完美的,但在 gmail 上,2 个表之间有一个空间,为什么?!?图片:http://i.imgur.com/srJ
我是一名优秀的程序员,十分优秀!