FrameworkElement.RequestedTheme プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リソースを決定するために 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 に設定すると、常に "ダーク" がテーマになります。