微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xaml – 覆盖默认主题WP7的自定义主题

是否可以创建自定义主题并将其用作主题

我可以在任何地方找到的每个示例都说您可以通过复制ThemeResources.xaml和System.Windows.xaml文件并将它们作为合并的词典包含在您的应用中来创建自定义主题.

http://windowsphonegeek.com/articles/Creating-WP7-Custom-Theme-ndash-Basic-Theme-Implementation
Overriding themes in Windows Phone 7

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

然后我又读了一些你需要在样式文件中包含画笔的内容,所以在CustomThemeStyles.xaml我有这个.

http://www.windowsphonegeek.com/articles/Creating-WP7-Custom-Theme—Complex-Theme

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="CustomThemeResources.xaml" />
</ResourceDictionary.MergedDictionaries>

它不起作用……所以我下载了示例应用程序,果然,每个想要改变一些颜色的页面,比如背景颜色,都会将它设置在它最外面的组件上.

<Grid Background="{StaticResource PhoneBackgroundBrush}">
...
</Grid>

是否可以包含更改所有认值的样式/画笔/颜色/等的自定义主题,而无需在任何地方明确设置它们?

解决方法

在当前版本的WP7中,如果没有通过“x:Key”显式设置,则可以更改认样式的新样式:

隐式样式是Silverlight 4(和WPF)的一项功能:Windows Phone 7基于Silverlight 3(添加了一些Silverlight 4功能).由于Silverlight 3中没有隐式样式,这意味着在Windows Phone 7中也无法使用它们.

现在你可以:

>仅覆盖认的画笔/颜色资源,如您指出的第一篇文章中所述.请注意,所有WP7控件都将更改其颜色.另请注意,由于某种原因,认背景保持不变.这是当前版本的WP7的已知问题,可能将在“芒果”更新中修复.
>如果您想要任何新的Style / ControlTemplate,您必须使用您指出的第二篇文章中提到的“x:Key”/ {StaticResource …}方法.

最后,正如Derek Lakin先前提到的:希望这个错误将在芒果更新中得到修复!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐