我正在开发一款应用,并希望将自己的风格运用到它上面。 XAML有一些叫做主题目录的东西我尝试用于我的主题。 事实证明,Windows有3个预定义的主题; Light,Dark和HighContrast。 当我将资源目录上的x:Key属性设置为包含我要使用的主题而不是3预定义或默认值之一时,它不起作用。谁知道为什么?
<ResourceDictionary.ThemeDictionary>
<ResourceDictionary x:key="Default"> // Does work
(...)
</ResourceDictionary>
<ResourceDictionary x:key="MyOwnThemeKey"> // Does not work
(...)
</ResourceDictionary>
</ResourceDictionary.ThemeDictionary>
答案 0 :(得分:3)
来自here:
主题词典是一种特殊类型的合并词典 旨在保留根据主题a而变化的资源 用户目前正在使用他或她的PC。例如,“光” 主题可能使用白色画笔,而默认主题可能 使用深色刷。画笔改变了,但除此之外 使用画笔作为资源的控件的组合可以是 同样,只需引用一个主题资源。
来自here:
一个或多个ResourceDictionary对象元素。每个这样的 ResourceDictionary必须具有x:Key属性。价值 属性必须是唯一的,并且应该引用已知的主题名称。每 资源字典及其内容应该是有意的 为其他方式使用的命名资源提供主题值 其他资源。例如,“HighContrast”的主题词典 可能包括部分或全部画笔或颜色的重新定义 在其他风格或过渡资源中使用的键控资源, 为了产生必要的对比度水平来满足 高对比度设计要求。
基本上,主题词典旨在修改现有主题,并根据当前的OS主题进行选择。如果该名称没有OS主题,则无法选择它。