FrameworkElement.RequestedTheme Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets the UI theme that is used by the UIElement (and its child elements) for resource determination. The UI theme you specify with RequestedTheme
can override the app-level 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" .../>
Property Value
A value of the enumeration, for example Light
.
Remarks
Changing the RequestedTheme
value is effectively changing the resource lookup behavior for the element's default template. If you change the value to Light
then the template uses the values from the ResourceDictionary that is keyed as "Light" in the ThemeDictionaries collection. Setting the UI theme differently from the app's theme is often appropriate for floating controls such as menus and flyouts.
You can change the value of the RequestedTheme
property for any given element at run-time. That's in contrast to the Application.RequestedTheme property, which throws an exception if you try to set it while the app's running.
The RequestedTheme
value you set on a FrameworkElement will inherit to any elements that are nested within the element where RequestedTheme
is set, but that inheritance can be overridden by explicitly setting RequestedTheme
again. For example, in this XAML example, the parent StackPanel sets the theme to Light
, and that value inherits to the first TextBlock child element, but not to the second TextBlock
because it's setting the value to Dark
instead.
<StackPanel RequestedTheme="Light">
<TextBlock>Text using light theme.</TextBlock>
<TextBlock RequestedTheme="Dark">Text using dark theme.</TextBlock>
</StackPanel>
The RequestedTheme
property is ignored if the user is running in high contrast mode. See High-contrast themes and XAML high contrast style sample.
Note
On Windows, setting RequestedTheme to ElementTheme.Default will always result in "Dark" being the theme.