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 ハイ コントラスト スタイルのサンプルを参照してください。

Note

Windows、RequestedTheme を ElementTheme.Default に設定すると、常に "濃い" がテーマになります。

適用対象

こちらもご覧ください