2

我正在开发一个应用程序,并希望将我自己的风格应用到它上面。XAML 有一些称为主题目录的东西,我试图将其用于我的主题。事实证明,windows 有 3 个预定义的主题;浅色、深色和高对比度。当我将资源目录上的 x:Key 属性设置为包含我想使用的主题而不是 3 个预定义或默认值之一时,它不起作用。有谁知道为什么?

<ResourceDictionary.ThemeDictionary>
    <ResourceDictionary x:key="Default"> // Does work
        (...)
    </ResourceDictionary>
    <ResourceDictionary x:key="MyOwnThemeKey"> // Does not work
        (...)
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionary>
4

1 回答 1

3

这里

主题词典是一种特殊类型的合并词典,旨在保存根据用户当前在其 PC 上使用的主题而有所不同的资源。例如,“浅色”主题可能使用白色画笔,而默认主题可能使用深色画笔。画笔会发生变化,但使用画笔作为资源的控件的组成可能是相同的,只需引用主题资源即可。

这里开始

一个或多个 ResourceDictionary 对象元素。每个这样的 ResourceDictionary 都必须有一个 x:Key 属性。该属性的值必须是唯一的,并且应该引用已知的主题名称。每个资源字典及其内容应旨在为命名资源提供主题值,否则这些资源会被其他资源消耗。例如,“HighContrast”的主题词典可能包括对其他样式或过渡资源中其他地方使用的部分或全部画笔或颜色键控资源的重新定义,以便产生必要的对比度级别以满足高对比度设计要求。

基本上,主题词典旨在修改现有主题,并根据当前操作系统主题进行选择。如果没有该名称的操作系统主题,则无法选择它。

于 2012-10-06T12:55:14.463 回答