0

アプリで次のコードを使用して、電話のテーマを検出し、それに応じてアイコンを設定しています。しかし、アプリをバックグラウンドにしてから電話のテーマを変更し、後でアプリをフォアグラウンドに取得すると、テーマの変更が検出されません。テーマの変更を検出するにはどうすればよいですか。

ここに私のコードがあります:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
   DarkThemeVisibility = (Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
   LightThemeVisibility = (Visibility)Application.Current.Resources["PhoneLightThemeVisibility"];
}
4

1 に答える 1

1

テーマを変更してアプリに戻ると、色が変わるのはアプリケーション バーだけであることがわかります。アプリケーションのテーマは、アプリケーションを再起動する前に実際には変更されません (これは、アプリケーションのリソースがアプリケーションの起動時に読み込まれるためです)。その場合、アイコンを変更する必要はないと思います (アプリの色が変更されていないため)。 )。
変更するアイコンがボタン アプリ バーのアイコンである場合、通常、アプリ バー アイコンは透明な背景に白い前景を使用する必要があり、テーマに従って自動的に色付けされます。

于 2013-10-03T14:02:21.907 に答える