2012-01-01 8 views
1

私はWPマンゴーアプリを作成しています。デフォルトのメールアプリケーションのように、LightまたはDark Themeが選択されているかどうかに関係なく、デフォルトのページ背景をWhiteに設定したいと思います。 私はthis articleを踏襲して、デフォルトPhoneBackgroundBrushを変更しようとしました:私はどのようにそれを達成するために、間違ったかをやってWP7.1マンゴーのデフォルトのページ背景でカスタムテーマを設定

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

任意のアイデア?

+3

どういうところが間違っていますか?それは動作しませんか?エラーがありますか?何が起こるのですか?あなたのコードのどこにこの行を置いていますか? –

+0

@KooKiz 私はこのクラスをAppクラスのコンストラクタに入れています。 PhoneForegroundBrushやPhoneAccentBrushなどの他のブラシを設定しているときに、PhoneBackgroundBrushを設定しても効果がないようです。 私のアプリの「軽い」テーマを設定する方法はありますか? – Soap

+0

@Soapは、その例でもうまくいかないようです - 彼が持っているコードは紫色に設定されていますが、終わりの写真では背景が確かに紫色ではありません –

答えて

1

私はサンプルを使いこなしましたが、これを行うことをお勧めしません。余分な仕事をし、自分のリソースを作成し、自分でそれを適用する。

この方法ではデザイナーに更新が表示されないため、UIの開発が困難になります。

また、正常に動作しない - 背景は変更されません。ブログ記事のコメントを読むと、他のコントロールと連携している他の問題があります。

だから、

、普通にそれを行う - あなたのApp.xaml内のページ

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

あなたも行うことができますに、

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

その後、(あなたはまた、別々のResourceDictionaryでそれを行うことができます) Find & Replaceを使用して、すべてのページでこれをすばやく実行します。ただし、「LayoutRoot」という名前を変更したことはありません。あなたは

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

を見つけた場合、あなたは

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

私のために動作しませんでした独自のスタイルを作成するの溶液で置き換えることができます。バックグラウンドをデザインビューで働くライトグレーに設定しようとしましたが、エミュレータを実行したときに標準の黒い背景が現れました。