次の方法で共有


FrameworkElement.RequestedTheme プロパティ

定義

リソースを決定するために UIElement (およびその子要素) によって使用される UI テーマを取得または設定します。 で指定 RequestedTheme した UI テーマは、アプリ レベルの RequestedTheme をオーバーライドできます。

public:
 property ElementTheme RequestedTheme { ElementTheme get(); void set(ElementTheme value); };
ElementTheme RequestedTheme();

void RequestedTheme(ElementTheme value);
public ElementTheme RequestedTheme { get; set; }
var elementTheme = frameworkElement.requestedTheme;
frameworkElement.requestedTheme = elementTheme;
Public Property RequestedTheme As ElementTheme
<uiElement RequestedTheme="elementThemeMemberName" .../>

プロパティ値

列挙型の値 (例: Light)。

注釈

値を RequestedTheme 変更すると、要素の既定のテンプレートのリソース参照動作が実質的に変更されます。 値を にLight変更すると、テンプレートは、ThemeDictionaries コレクションで "Light" としてキー付けされた ResourceDictionary の値を使用します。 UI テーマをアプリのテーマとは異なる方法で設定することは、多くの場合、メニューやポップアップなどのフローティング コントロールに適しています。

実行時に、特定の要素の RequestedTheme プロパティの値を変更できます。 これは Application.RequestedTheme プロパティとは対照的で、アプリの実行中に設定しようとすると例外がスローされます。

FrameworkElement で設定した値はRequestedTheme、 がRequestedTheme設定されている要素内で入れ子になっている要素を継承しますが、その継承は、再び明示的に設定RequestedThemeすることでオーバーライドできます。 たとえば、この XAML の例では、親 StackPanel によってテーマが にLight設定され、その値は最初の TextBlock 子要素に継承されますが、代わりに 値が にDark設定されているため、2 番目TextBlockの要素には継承されません。

<StackPanel RequestedTheme="Light">
  <TextBlock>Text using light theme.</TextBlock>
  <TextBlock RequestedTheme="Dark">Text using dark theme.</TextBlock>
</StackPanel>

ユーザーが RequestedTheme ハイ コントラスト モードで実行している場合、プロパティは無視されます。 「ハイ コントラスト テーマ」と「XAML ハイ コントラスト スタイルのサンプル」を参照してください。

注意

Windows では、RequestedTheme を ElementTheme.Default に設定すると、常に "ダーク" がテーマになります。

適用対象

こちらもご覧ください