Windows Phone 8主题覆盖默认主题不起作用

时间:2013-04-22 15:13:59

标签: c# windows xaml windows-phone-8 themes

您好我正在为客户开发应用程序,而客户需要一个与公司颜色相匹配的特定主题。

我正在尝试覆盖默认主题,因此客户主题将始终是使用的主题。我目前试过这个网站的方式:

http://www.geekchamp.com/articles/windows-phone-mango-custom-application-theme-step-by-step

以及这些建议:

How to force to use light theme in Windows Phone 7? http://matthiasshapiro.com/2011/01/17/theme-forcing-for-windows-phone-7-silverlight/

这些确实是一些旧帖子,但大多数应该在Windows Phone 8中相同

即使将ThemeResource,xaml移动到项目并将其链接起来,我也无法使用其中任何一个:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources/ThemeResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>        
</Application.Resources>

它stil使用手机默认主题Dark。

我怎么发现如果你不使用默认变量名称,如:PhoneBackgroundBrush

并使用您自己的命名约定然后这适用。我宁愿只是覆盖默认的变量名。

我在这篇文章中的问题非常类似:Custom Theme That Overrides Default Theme WP7

真的没有办法覆盖默认主题及其变量,或者我被迫自己制作并通过所有控件来使用我自己的命名约定?

非常感谢任何帮助。

问候 Jens Simonsen

1 个答案:

答案 0 :(得分:1)

在底部的默认资源字典中,您将看到如

之类的语句
<Style TargetType="Button" BasedOn="{StaticResource DefaultButtonStyle}"/>

将它们注释掉或者在你自己的资源字典的底部使用相同的东西而不是像;

<Style TargetType="Button" BasedOn="{StaticResource MyCustomButtonStyle}"/>

之后,该类型的任何内容都应该继承您的样式模板而不是默认样式,并有效地全局应用您的主题,而不必在整个地方隐式定义它们。

希望这有帮助。

相关问题