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 子要素に継承されますが、代わりに値が濃色に設定されているため、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 に設定すると、常に "ダーク" がテーマになります。 Windows Phone、ElementTheme.Default 値を使用すると、ユーザーによって設定されたシステム テーマのクエリが生成されます。

適用対象

こちらもご覧ください