我在MainPage中定义了一个简单的TextBlock:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="Example" FontSize="30" Foreground="{StaticResource PhoneForegroundBrush}"/>
</Grid>
正如您所看到的,我正在使用StaticREsource PhoneForegroundBrush
。它非常好用:
但是当应用程序暂停时用户更改手机主题(亮/暗)时出现问题。然后,当用户返回应用程序时,资源不会更新,因此我的Textblock看起来像这样:
当我关闭应用并再次启动时,一切正常:
是否有一种方法可以放入 Resuming 事件中,这会更新资源以便我的UIElements可见?
答案 0 :(得分:2)
使用ThemeResource,它会根据当前活动的主题检索值。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="Example" FontSize="30" Foreground="{ThemeResource PhoneForegroundBrush}"/>
</Grid>
ThemeResource XAML标记扩展为任何XAML提供值 通过评估对资源的引用来增加属性 系统逻辑,根据不同的资源检索不同的资源 目前活跃的主题。与StaticResource类似,资源也是如此 在ResourceDictionary中定义,以及ThemeResource用法引用 ResourceDictionary中该资源的关键。