Windows runtime WinRT用户可选主题

Windows runtime WinRT用户可选主题,windows-runtime,themes,Windows Runtime,Themes,我有一个WinRT应用程序,我希望用户能够选择主题,我可以定义其他主题吗,除了亮/暗之外?它目前没有内置到平台中,所以您需要自己实现它。我的方法是在应用程序级别替换资源字典,并在切换字典时重新创建可视化树(例如,删除并添加回整个控制树-根框架、当前页面等。StaticResource绑定从不更新,因此您需要强制重新评估,这应该是最简单的方法。Filip,我如何做到这一点?我正在尝试在运行时更改一些资源,除非重新启动应用程序,否则它们不会显示。我假设它是正如您所说,由于StaticResource

我有一个WinRT应用程序,我希望用户能够选择主题,我可以定义其他主题吗,除了亮/暗之外?

它目前没有内置到平台中,所以您需要自己实现它。我的方法是在应用程序级别替换资源字典,并在切换字典时重新创建可视化树(例如,删除并添加回整个控制树-根框架、当前页面等。StaticResource绑定从不更新,因此您需要强制重新评估,这应该是最简单的方法。

Filip,我如何做到这一点?我正在尝试在运行时更改一些资源,除非重新启动应用程序,否则它们不会显示。我假设它是正如您所说,由于StaticResource绑定没有更新。您能给出一个如何执行此操作的示例吗?StaticResources是静态的,因此除非需要,否则它们不会重新计算。我不确定它们的确切加载时间,但您可以尝试我提到的方法-从Window.Current.Content中删除框架,然后将其添加或重新添加一个新实例。Navi进入页面的新实例等。当然,也有可能因为我上次尝试过,平台变得更加智能,并且正在缓存资源,所以你需要重新启动应用程序来刷新它们,但我仍然会尝试。我会尝试一下。目前我正在将我的应用程序更改为do
((SolidColorBrush)Application.Current.resources[“key”]).Color=Color;
这很有效。我之前做的是用一个模板替换一堆东西,然后将其加载为xaml资源并设置该资源。我将尝试使用框架。