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 属性相反,如果在应用运行时尝试设置该属性,该属性将引发异常。

RequestedThemeFrameworkElement 上设置的值将继承到嵌套在 元素中的任何元素,其中 RequestedTheme 设置了 ,但可以通过再次显式设置 RequestedTheme 来重写该继承。 例如,在此 XAML 示例中,父 StackPanel 将主题设置为 Light,并且该值将继承到第一个 TextBlock 子元素,但不会继承到第二个 TextBlock 元素,因为它改为将值设置为 Dark

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

RequestedTheme如果用户在高对比度模式下运行,则忽略 属性。 请参阅 高对比度主题XAML 高对比度样式示例

注意

在 Windows 上,将 RequestedTheme 设置为 ElementTheme.Default 将始终导致“深色”为主题。

适用于

另请参阅