2017-06-22 13 views
0

私はUWPアプリケーションを開発しており、template10を使用しています。私は2つの画像、1つの白と他の黒を持っています。私は明るいテーマで黒いイメージを、暗いテーマで白いイメージを表示したい。私はこのコードを持っています:アプリケーションのテーマに応じて画像を表示する(暗い/明るいテーマ)

if (this.RequestedTheme == ElementTheme.Light) 
    Image.Source = new BitmapImage(new Uri("ms-appx:///Assets/BlackImage.png")); 
else 
    Image.Source = new BitmapImage(new Uri("ms-appx:///Assets/WhiteImage.png")); 

しかし、私は軽いテーマのイメージは表示されません!しかし、私が暗いテーマを選択すると、白い画像が表示されます。

+1

。また、このコードに問題がある場合は、[this](https://stackoverflow.com/a/44600513/7331395)の回答にコメントしてください。答えがうまくいかないと言う新しい投稿を作成しないでください。 –

+0

アセットが実際に見込まれる場所にあることを確認します。黒い画像があることを確認しましたか? –

+0

「これ」とは何ですか?それは 'アプリケーション'ですか?または 'Page'?これを 'Initialization'でも使っていますか?または 'Button'をクリックしますか? – AVK

答えて

0

ElementTheme.LightまたはElementTheme.DarkFrameworkElement.RequestedThemeに設定しないと、常にElementTheme.Defaultが返されます。したがって、ApplicationThemeLightであっても、ImageはWhiteImageで設定されます。

アプリ内のRequestedThemeは、アプリのテーマ全体の明暗設定を決定する値を取得または設定できます。列挙のApplicationThemeを返します。それにはLightDarkが含まれます。 App.Current.RequestedThemeを使用して、現在のApplicationThemeのアプリを入手することができます。例えば

:私は私のアプリでそれを使用しているので、このコードが動作することを確認するために

var AppRequestedTheme = App.Current.RequestedTheme.ToString(); 
if (AppRequestedTheme == "Light") 
    Image.Source = new BitmapImage(new Uri("ms-appx:///Assets/BlackImage.png")); 
else 
    Image.Source = new BitmapImage(new Uri("ms-appx:///Assets/WhiteImage.png")); 
関連する問題