gpt4 book ai didi

c# - 在运行时动态更改 Win8 XAML 应用程序中的 ThemeResource/StaticResource 或其他?

转载 作者:太空狗 更新时间:2023-10-29 22:26:37 25 4
gpt4 key购买 nike

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

但问题是我无法找出如何动态更改资源的值。我知道在 8.1 中他们添加了主题资源的概念,它允许我在运行时从浅色主题更改为深色主题等等。但我的问题是,我想说“backgroundColor 资源现在将变为橙色,所有使用该资源的项目都将反射(reflect)这一变化”

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

最佳答案

只能更改 SolidColorBrushColor,使用:

(Application.Current.Resources["BackgroundBrush"] as SolidColorBrush).Color = Colors.Orange;

因为SolidColorBrush是一个,所有元素都有对它的引用,改变它的属性会反射(reflect)到所有元素。但是 Color 是一个 struct,所以更改 XXXColor 将不起作用。

我只在 Windows Phone Runtime 8.1 APP 上测试过,但它应该也适用于 Windows Runtime 8.1 APP。

关于c# - 在运行时动态更改 Win8 XAML 应用程序中的 ThemeResource/StaticResource 或其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com