制作自己的Windows 8应用主题

时间:2012-10-05 09:06:41

标签: c# xaml windows-8 microsoft-metro windows-store-apps

我正在开发一款应用,并希望将自己的风格运用到它上面。 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>

1 个答案:

答案 0 :(得分:3)

来自here

  

主题词典是一种特殊类型的合并词典   旨在保留根据主题a而变化的资源   用户目前正在使用他或她的PC。例如,“光”   主题可能使用白色画笔,而默认主题可能   使用深色刷。画笔改变了,但除此之外   使用画笔作为资源的控件的组合可以是   同样,只需引用一个主题资源。

来自here

  

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

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