2012-01-01 59 views
1

我正在创建WP Mango应用程序。我想将默认页面背景设置为白色,而不管是否选择了浅色或深色主题,与默认邮件应用程序完全相同。 我已经按照this article,并试图更改默认PhoneBackgroundBrush为:在WP7.1中使用默认页面背景设置自定义主题芒果

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

任何想法,我做错了或怎么实现?

+3

怎么了?它不起作用?你有错误吗?怎么了?你的代码中的哪个部分放置了这一行? – 2012-01-01 12:43:36

+0

@KooKiz 我把这条线放在App类的构造函数中。 设置PhoneForegroundBrush或PhoneAccentBrush等其他画笔时,设置PhoneBackgroundBrush似乎没有任何效果。 我有什么方法可以为我的应用程序设置“Light”主题吗? – Soap 2012-01-01 16:29:28

+0

@Soap看起来在这个例子中甚至不起作用 - 他将代码设置为紫色,但在结尾图片中背景绝对不是紫色 – 2012-01-01 17:51:14

回答

1

我搞砸了样本,根本不建议这样做。做额外的工作,创建自己的资源,并自己应用它们。

此方法不会在设计器中显示更新,这会使您的UI开发变得困难。

它甚至不能正常工作 - 背景不会改变。如果您阅读博客文章中的评论,则与其他控件一起使用时还存在其他问题。

所以,只是做了正常 - 在你的App.xaml(你也可以做一个单独的ResourceDictionary)

<!--Application Resources--> 
<Application.Resources> 
    <SolidColorBrush Color="White" x:Key="WhiteBrush" /> 
    <SolidColorBrush Color="#FFF222" x:Key="UglyYellowBrush" /> 
</Application.Resources> 

然后,一个页面

<!--LayoutRoot is the root grid where all page content is placed--> 
    <Grid x:Name="LayoutRoot" Background="{StaticResource UglyYellowBrush}"> 
... </Grid> 

你甚至可以做这很快就会在所有页面上使用Find &替换,前提是您从未更改过名称'LayoutRoot'。如果您发现

<Grid x:Name="LayoutRoot" Background="Transparent"> 

你可以用

<Grid x:Name="LayoutRoot" Background="{StaticResource UglyYellowBrush}"> 
0

创建自己的风格,我没有工作的解决方案取代。我试图将背景设置为在设计视图中工作的浅灰色,但是当我运行模拟器时出现了标准的黑色背景。