更改资源字典中的 SolidColorBrush#Color 失败:属性为只读 [重复]

2023-12-02

我有一个SolidColorBrushApp.xaml 中的资源如下所示:

<SolidColorBrush Color="#73AF00" x:Key="BaseGreen"></SolidColorBrush>

我的所有样式(按钮、网格背景颜色等)都包含该资源,我希望当用户更改颜色设置时,整个应用程序颜色将更改为蓝色。

var color = System.Windows.Application.Current.Resources["BaseGreen"] as SolidColorBrush;
                color.Color = Color.FromRgb(41, 128, 185);

我尝试这个答案的建议但是当我分配值时,抛出异常:

This property is set to read only and cannot be set

我也尝试过,但什么也没发生:

var color = this.TryFindResource("BaseGreen") as SolidColorBrush;
color = new SolidColorBrush(Color.FromRgb(41, 128, 185));

我有什么遗漏的吗?


如果您想动态设置颜色SolidColorBrush in App.xaml, 然后你不应该设置颜色值:

<Application.Resources>
    <SolidColorBrush x:Key="DynamicColor" />
</Application.Resources>

在你的控制下,你应该通过绑定DynamicResource:

    <Label Name="MyLabel" 
           Content="Hello" 
           Background="{DynamicResource Color}" />

    <Button Content="Change color"
            Width="100" 
            Height="30" 
            Click="Button_Click" />
</Grid>

然后去改变Resource你应该:

Application.Current.Resources["YourResource"] = YourNewValue;

让我举个例子:

private void Window_ContentRendered(object sender, EventArgs e)
{
    SolidColorBrush YourBrush = Brushes.Green;

    // Set the value
    Application.Current.Resources["DynamicColor"] = YourBrush;         
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    SolidColorBrush YourBrush = Brushes.Orange;

    // Set the value
    Application.Current.Resources["DynamicColor"] = YourBrush;
}

DynamicResources用于改变。改哪里——这是开发者的意愿。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改资源字典中的 SolidColorBrush#Color 失败:属性为只读 [重复] 的相关文章

  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何让窗口最大化时所有控件按比例调整大小?

    当我单击最大化按钮时 窗口最大化 但控件未按比例调整大小 使控件相应调整大小的最佳方法是什么 我正在使用MVVM 这是我的代码
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 私有模板函数

    我有一堂课 C h class C private template
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 在wpf中移动鼠标

    我目前正在寻找一种在 wpf 中移动鼠标的方法 我发现的只是我无法可靠实现的非托管方法调用 有没有一种简单的方法可以将鼠标光标移动到某个地方 即 双击后 我肯定在这里遗漏了一些东西 添加对System Windows Forms dll的引
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 带 Ifelse 条件的 Cbind/Rbind

    这是我正在使用的代码 x lt c Yes No No Yes Maybe y lt t 1 10 z lt t 11 20 rbind data frame ifelse x Yes y z 这会产生 X1L X12L X13L X4L
  • 提升.Interprocess notification() 性能

    我有两个进程 A 和 B 它们应该在 Windows 10 上使用 Boost Interprocess 通过共享内存快速交换数据 我的问题 之间的时间notify all 和wait 似乎很慢 通常为 15 毫秒 我最终编写了一个简单的应
  • 文字分隔符( \Q \E 块内的分隔符)

    我一直在尝试制作一些基于的功能RegEx他们中的大多数人都使用 Q and E作为一些RegEx pattern是用户输入 所以 假设我们正在使用delimiter 并想将其与 该函数将在以下行中构造一些东西 Q E 我不知道为什么 Q E
  • 阻止对 docker 容器的外部访问[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想阻止从外部直接访问 docker 容器 我使用 haproxy 希望只允许访问端口 80 443 我在 iptables 中添加了以下规则 但我仍然可以通过不同的端口访问 doc
  • 在类中使用 boost::numeric::odeint

    对于模拟 我使用 boost numeric odeint 但遇到问题 我在我的一个类的方法中使用集成函数 但出现 没有匹配的函数可用于调用集成 的错误 为了更清楚 这是我的代码的压缩版本 include MotionGeneration
  • C 编译器错误:未定义的函数引用

    执行 exe 后 我收到此错误 对 StudentScan 的未定义引用错误 ld 返回 1 退出状态 注意 我的编码能力很差 而且是新手 所以请不要介意我的糟糕编码 注2 我只是在搞乱随机函数 include
  • WP7:将加速度计和指南针数据转换为模拟运动 API

    我正在为 Windows Phone 7 1 Mango 编写一个小型示例应用程序 并希望使用组合运动 API 来显示设备的运动 我需要编写模拟类 以便在使用不支持设备所有传感器的模拟器时能够测试我的应用程序 我已经编写了一个简单的模拟类来
  • Android:使用辅助服务读取 Google chrome URL

    我想读取用户在浏览器中输入的网址 这是我的无障碍服务代码
  • Django 管理员:如何将更多字段显示为链接?

    Django 的默认管理页面会自动将每个表的第一个标题设为编辑信息的链接 见下文 单击ID列数据将带您进入编辑所选表中字段的页面 在本例中Applicants 有没有办法改变这个设置 以便Surname是要编辑的链接 而不是ID 非常感谢
  • 使用 Ruby,获取给定 URL 的内容类型的最有效方法是什么?

    使用 Ruby 获取给定 URL 的内容类型的最有效方法是什么 如果我想要简单的代码 这就是我要做的 require open uri str open http example com str content type gt text h
  • 在空手道中设置全局配置值

    我正在尝试的是从功能文件中设置全局 karate config 值 我有一些与此非常相似的东西https github com intuit karate blob master karate demo src test java demo
  • 在组装战争中包含 Maven 依赖项?

    我正在创建一个程序集packaging war 我需要包含一些 jar 它们已在我的 war 中的 pom xml 中声明为项目依赖项 web inf lib 我怎样才能做到这一点 编辑于 15 10 我的项目创建了很少的程序集 其中之一应
  • Enter 键按下的行为类似于 JSF 中的提交

    如何使 Enter 键按下的行为类似于 JSF 中的提交 它与输入框一起使用 但不适用于输入秘密框 我以前没见过这个问题 此行为不太可能是特定于浏览器的 尝试在不同类型的浏览器中排除其中一种或另一种 IE6 7 8 FF Safari Ch
  • 在PythonunittestTestLoader中指定具体的测试用例

    我有以下文件夹结构 Unit smoke py Test1 Test1 py Test2 Test2 py 两个测试文件各有两个测试用例 File smoke py包含 suite1 unittest TestLoader discover
  • errno、strerror 和 Linux 系统调用

    我可以用strerror 获取文本表示errno使用 CRT 函数后的值 例如fopen 如果我使用open Linux系统调用代替CRT函数 它还设置errno失败时的价值 申请是否正确strerror 对此errno价值 如果没有 是否
  • 找不到有效的签名身份?

    我已经尝试用 mono 创建一个发行版本已经好几天了 我从我们的 团队代理 那里获得了发行配置文件和发行证书 并分别拖放到 xcode organizer 和 keychain access 上 但是仍然有警告消息显示 在您的钥匙串中找不到
  • Java解压字节数组

    在服务器 C 上 二进制数据使用以下方式压缩ZLib功能 compress2 并将其发送到客户端 Java 在客户端 Java 应使用以下代码片段解压缩数据 public static String unpack byte packedBu
  • SPARQL 中的幂(指数)和其他数学函数支持

    I am trying to write a SPARQL query where I want to filter on the square of something but I am simply unable to figure o
  • 如何使默认 bin 目录在 Eclipse 中可见? [复制]

    这个问题在这里已经有答案了 可能的重复 我该怎么做才能在 eclipse 上显示 bin 文件夹 我知道这是一个searing的重复项this问题 但是该问题中提供的答案对我不起作用或对我没有任何帮助 我正在尝试获取项目的默认输出文件夹 b
  • 更改资源字典中的 SolidColorBrush#Color 失败:属性为只读 [重复]

    这个问题在这里已经有答案了 我有一个SolidColorBrushApp xaml 中的资源如下所示