0

嗨,我目前正在为客户开发应用程序,客户想要一个与公司颜色相匹配的特定主题。

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

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 移动到项目并明智地链接它,我也无法让其中任何一个工作:

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

它仍然使用手机默认主题黑暗。

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

并使用您自己的命名约定,然后就可以了。我宁愿只覆盖默认变量名。

我的问题在这篇文章中非常像这样:覆盖默认主题 WP7 的自定义主题

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

很感谢任何形式的帮助。

致延斯·西蒙森

4

1 回答 1

1

在底部的默认资源字典中,您会看到如下语句;

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

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

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

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

希望这可以帮助。

于 2013-04-22T15:42:00.937 回答