0

UWPで自動的にグローバルテーマ設定(暗いか明るい)と同じコードでContentDialog RequestedThemeをロードイベントに合わせることはできますか?私はこのトリックを使用しましたが効果がありません:UWPで自動的にLoad EventにContentDialog RequestedThemeをフィットさせますか?

private void ContentDialog_Loading(FrameworkElement sender, object args) 
     { 
      string device = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily; // (Mobile, Team(Surface Hub), Desktop, IoT. Device types. 
if (device == "Windows.Mobile") // If it is a phone 
      { 


     RequestedTheme = ElementTheme.Default; // Enable automatic theming in mobile. 

      } 
     } 

ありがとうございました。

+0

デフォルトでは、コンテンツダイアログは自動的にグローバルテーマに適合しますが、問題は再現できません。どこでテーマを設定しましたか?そして、あなたの 'ContentDialog_Loading'イベントは、(このコンテンツダイアログを保持する)ページがロードされているときにトリガされるべきです。 ContentDialogをどうやって作りましたか? –

+0

こんにちは。コードではなく、XAMLを使用してコンテンツダイアログを作成しました。デスクトップモードで正しく動作するために、XAMLデザイナーでContentDialog RequestedThemeを "Light"に設定しました。はい、あなたは正しいです。ロード中にトリガーされたイベントをロードしていますが、私はこれをやりたい:デバイスがWindows Phoneの場合、ContentDialogのテーマを電話のデフォルト(濃いまたは薄い)に設定する。私の問題は、デバイスがデフォルトでWindows Phoneの場合、毎回ContentDialogのテーマが「暗い」ことです。 「設定」からの変更は効果がありません。この問題をどのように解決できますか?ありがとう。 –

答えて

1

私はこのように、たとえば、Applicaition.RequestedThemeが適用された後、あなたは実行時にテーマ値を指定していると思う:あなたはDefaultに設定ElementTheme enumeration、で見ることができるように、それはApplication.RequestedThemeを使用しています

contentDialog.RequestedTheme = ElementTheme.Default; 

要素の値。

モバイルでコードを実行すると、あなたのコードのどこかでApplication.RequestedThemeDarkに設定されていると思います。

ContentDialogのテーマやアプリのテーマは、ユーザが設定に応じて変化するようにするには、デフォルトではあなたは自分のApp.xamlファイル内RequestedTheme="Dark"またはRequestedTheme="Light"を削除することができ、そして背後にあるコード内の任意のApplication.RequestedThemeを設定しないでください。設定と異なるテーマを変更しない限り、ElementThemeContentDialogに適用する必要はありません。

関連する問題