关于C#:Windows Phone 8主题的默认主题替代无效

windows phone 8 theme override of default theme not working

您好,即时通讯目前正在为客户开发应用程序,客户希望使用与公司颜色相匹配的特定主题。

,我现在正尝试覆盖默认主题,因此customers主题将始终是所使用的主题。我目前已经尝试过此网站的方式:

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

,以及这些建议中的一些建议:

如何在Windows Phone 7中强制使用浅色主题?
http://matthiasshapiro.com/2011/01/17/theme-forcing-for-windows-phone-7-silverlight/

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

即使将ThemeResource,xaml移至项目并像明智地链接一样,我也无法使它们起作用:

1
2
3
4
5
6
7
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources/ThemeResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>        
</Application.Resources>

it stil使用电话的默认主题"黑暗"。

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

,然后使用您自己的命名约定,即可正常工作。我宁愿只覆盖默认变量名。

我的问题非常类似于此帖子:覆盖默认主题WP7的自定义主题

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

非常感谢您的帮助。

致谢
延斯·西蒙森


在底部的默认资源字典中,您将看到类似以下语句:

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

注释掉它们或其他内容,并在您自己的资源字典的底部使用相同的内容,而不是用like;

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

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

希望这会有所帮助。