【问题标题】:Allowing users to customize theme colors允许用户自定义主题颜色
【发布时间】:2014-01-22 19:33:31
【问题描述】:

我有一个 Windows 8.1 XAML 应用程序。我想让用户自己自定义应用的主题 - 例如,我想给他们一个颜色选择器,让他们可以在应用中设置各种颜色,这将设置在我的应用中使用的各种资源。

不过,问题是我不知道如何动态更改资源的值。我知道他们在 8.1 中添加了主题资源的概念,它允许我在运行时从浅色主题更改为深色主题,等等。但我的问题是我想说'backgroundColor 资源现在将变为橙色,所有使用此资源的项目都将反映这种变化'

我相信 DynamicResource XAML 元素是我需要的,但这似乎来自 WPF,并且在 Win8 中不受支持。有人有建议吗?

简而言之——我希望能够轻松提供动态资源画笔。

【问题讨论】:

    标签: c# xaml windows-8 microsoft-metro winrt-xaml


    【解决方案1】:

    不幸的是,我不相信有一个很好的内置方法可以做到这一点,所以任何解决方案都可能有点老套或令人不快。

    This 问题有一些很好的答案,其中this 的答案是我个人最喜欢的。缺点是它会导致 ViewModel 对视图承担比理想更多的责任。

    【讨论】:

      【解决方案2】:

      您实际上可以根据用户的选择动态访问您希望更改的元素的属性。

      【讨论】:

      • 什么意思?你能在这里提供更多信息吗?
      • if (pickedColor == "green"){ Gridx.Background = new SolidColorBrush(Colors.Green); ButtonX.Background = new SolidColorBrush(Color.FromArgb(255, 0, 0, 166));不确定这是否有意义,但这会起作用。
      猜你喜欢
      • 1970-01-01
      • 2015-10-04
      • 2017-11-29
      • 2018-06-19
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      相关资源
      最近更新 更多