恢复应用程序时重新加载ThemeResources

时间:2014-06-18 14:29:46

标签: c# xaml windows-runtime windows-phone-8.1 win-universal-app

我在MainPage中定义了一个简单的TextBlock:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock Text="Example" FontSize="30" Foreground="{StaticResource PhoneForegroundBrush}"/>
</Grid>

正如您所看到的,我正在使用StaticREsource PhoneForegroundBrush。它非常好用: enter image description here

但是当应用程序暂停时用户更改手机主题(亮/暗)时出现问题。然后,当用户返回应用程序时,资源不会更新,因此我的Textblock看起来像这样:

enter image description here

当我关闭应用并再次启动时,一切正常:

enter image description here

是否有一种方法可以放入 Resuming 事件中,这会更新资源以便我的UIElements可见?

1 个答案:

答案 0 :(得分:2)

使用ThemeResource,它会根据当前活动的主题检索值。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock Text="Example" FontSize="30" Foreground="{ThemeResource PhoneForegroundBrush}"/>
</Grid>
  

ThemeResource XAML标记扩展为任何XAML提供值   通过评估对资源的引用来增加属性   系统逻辑,根据不同的资源检索不同的资源   目前活跃的主题。与StaticResource类似,资源也是如此   在ResourceDictionary中定义,以及ThemeResource用法引用   ResourceDictionary中该资源的关键。

ThemeResource markup extension