2017-10-03 5 views
1

UWPアプリケーションのウィンドウのサイズを変更するときに、右側に表示されるデフォルトの白い背景を変更する必要があり、動的に行う必要があります。私が試してみましたC#UWPグローバルアプリケーションの背景を変更する

var newBackground = Application.Current.Resources["ApplicationPageBackgroundThemeBrush"] as SolidColorBrush; 
if (newBackground != null) 
{ 
    newBackground.Color = newColor; 
} 

をnewBackgroundを変更しましたが、アプリケーションに影響を与えていません。

助けが必要ですか?

+0

コードに 'background'とは何ですか? –

+0

間違いですが、私は自分の質問を更新しました。 – user3239349

+0

'ApplicationPageBackgroundThemeBrush'を上書きしますか? –

答えて

0

あなたはApplicationPageBackgroundThemeBrush

Application.Current.Resources["ApplicationPageBackgroundThemeBrush"] = Colors.Red; 
0

を上書きしたい場合は、あなたの問題のために、我々はバックグラウンドで何かをチェックする必要があります:

あなたはgeneraic.xamlでApplicationPageBackgroundThemeBrushをチェック(generaic.xamlあるものkonwするにはhereが表示されます)、ApplicationPageBackgroundThemeBrushが "Default"、 "HighContrast"、および "Light"で3回定義されています。リクエストテーマを呼び出すと、すべての色が異なるテーマで変更されます。あなたは「ダーク」あなたが見つけるためにリクエストのテーマを変更した場合

this.RequestedTheme = ElementTheme.Dark 

だから、あなたの質問に戻って変更カラーコードその:

newBackground.Color = newColor; 

デフォルト設定のがあるので、変更されることはありません"Dark"(デフォルト/ Lightテーマの場合) 実行時にこのテーマブラシをコードの背後から修正することはできないようです。

私自身はその後、明示的に要素を設定して色を変更するテーマカラーを作成するには、このための唯一の方法はにあると思います。

テーマの色を設定します。新しいacrylic documentは私たちのために良い点を提供します。ここで私はあなたのテーマがどのように機能するかをデフォルト表示するための簡単なサンプルを書く:

  1. 辞書を作成し、次のコードを挿入します。

    <ResourceDictionary.ThemeDictionaries> 
        <ResourceDictionary x:Key="Default"> 
         <SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="Blue"></SolidColorBrush> 
        </ResourceDictionary> 
        <ResourceDictionary x:Key="Dark"> 
         <SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="Yellow"></SolidColorBrush> 
        </ResourceDictionary> 
    </ResourceDictionary.ThemeDictionaries> 
    
  2. はapp.xamlするためにそれを追加します。

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

明示的に要素を設定するには、mygrid.background = xxxxのようにします。サイズ変更時にトリガしたい場合は、adaptivetriggerのプロパティを変更してください。

関連する問題