【问题标题】:WinRT User Selectable ThemeWinRT 用户可选主题
【发布时间】:2013-05-10 19:16:02
【问题描述】:

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

【问题讨论】:

    标签: windows-runtime themes


    【解决方案1】:

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

    【讨论】:

    • 菲利普,我该怎么做?我试图在运行时更改一些资源,除非我重新启动应用程序,否则它们不会出现。我假设这是由于 StaticResource 绑定没有更新,就像你说的那样。你能举例说明如何做到这一点吗?
    • StaticResources 是静态的,因此除非需要,否则它们不会重新评估。我不确定它们何时加载,但您可以尝试我提到的 - 从 Window.Current.Content 中删除 Frame,然后添加它或添加一个新实例。导航到页面等的新实例。
    • 当然也有可能,因为我上次尝试过 - 平台变得更加智能并且正在缓存资源,所以你需要重新启动应用程序来刷新它们,但我会还是试试吧。
    • 我会试一试。目前我正在将我的应用程序更改为 ( (SolidColorBrush)Application.Current.Resources["key"] ).Color = color; 这有效。我之前所做的是我有一个模板,我在上面替换了一堆东西,然后将它作为 xaml 资源加载并设置该资源。我会试试框架的东西。
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多