gpt4 book ai didi

c# - 如何在代码中更改 Xaml 资源中的颜色定义 (UWP)

转载 作者:行者123 更新时间:2023-11-30 17:34:22 29 4
gpt4 key购买 nike

[UWP]

我有许多带有来自 App.xaml 的颜色绑定(bind)的网格

MainPage.xaml ...

        <Grid
Height="45"
Margin="0,0,0,10"
Background="{ThemeResource MyColor}">

应用.xaml

<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
RequestedTheme="Dark">
<Application.Resources>
<ResourceDictionary>
<SolidColorBrush x:Key="MyColor">#FFFFFF</SolidColorBrush>

然后我想用这样的代码改变它的所有内容

    Application.Current.Resources["MyColor"] = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 242, 101, 34));

但它不起作用。我可以错过什么吗?当我导航到另一个页面并返回时,上面的代码抛出 System.Exception

最佳答案

StaticResourceThemeResource 不支持动态更改,因为您尝试使用 WPF 中的 DynamicResource。顺便说一句,如果您像前后导航一样重新加载 View ,您可以看到更改,但这不是一个好的解决方案。

另一方面,您可以使用 ThemeResource 实现一些动态变化并改变例如。颜色取决于当前主题(深色、浅色、高对比度)

延伸阅读:https://learn.microsoft.com/en-us/windows/uwp/controls-and-patterns/xaml-theme-resources

关于c# - 如何在代码中更改 Xaml 资源中的颜色定义 (UWP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596564/

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