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先前提到的:希望这个错误将在芒果更新中得到修复!

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...