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