Windows Phone -样式.xaml + Mango转换



我有一个使用Windows Phone 7.0 SDK构建的应用程序。我现在需要将该应用程序更新到Windows Phone 7.1 SDK。当我迁移应用程序时,所有页面的背景都变成了黑色。然而,当我使用7.0 SDK时,它们都是白色的(正如预期的那样)。我该如何解决这个问题?在7.0 SDK中,我所有的页面都定义为:

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
...
</Grid>

PhoneBackgroundBrush在Styles.xaml中定义。该文件包含以下内容:

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:System="clr-namespace:System;assembly=mscorlib">
  <Color x:Key="PhoneBackgroundColor">#FFFFFFFF</Color>
  <SolidColorBrush x:Key="PhoneBackgroundBrush" Color="{StaticResource PhoneBackgroundColor}"/>
  </ResourceDictionary>

风格。xaml在App.xaml中被引用,如下所示:

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

怎么了?我怎样才能把我的背景变回白人?

查看这篇文章:Windows Phone 7.5 (Mango)的覆盖主题(向下滚动查看Mango部分)

简而言之:你不能再重写继承的XAML样式了。你必须在c#代码中重写它们,比如

(App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White;

最新更新