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 子元素,而不是第二个 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 值将导致查询用户设置的系统主题。

适用于

另请参阅