You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XAML.cs文件中设置TextBlock的背景颜色?

问题:如何在XAML.cs中设置Brush类型的背景绑定值?

场景重现

XAML代码

<TextBlock Text="{Binding Info40}"
           HorizontalAlignment="Center"
           Background="{Binding Info40_OK}">

正常运行的后台赋值代码

Info40 = source.Info40;

遇到的问题

尝试通过以下代码设置背景颜色时失败:

if (Info40 >= 20) Info40_OK = Colors.DarkGreen else { Info40_OK = Colors.Red; }

原因是Info40_OK是Brush类型,而Colors.DarkGreen是Color类型,二者类型不匹配。但在XAML中直接写Background="DarkGreen"能正常工作,是因为XAML会自动将颜色字符串转换为对应的Brush对象。

解决方案

需要把Color对象包装成SolidColorBrush对象(Background属性接受Brush类型,SolidColorBrush是最常用的纯色Brush实现),修改后的代码如下:

if (Info40 >= 20)
    Info40_OK = new SolidColorBrush(Colors.DarkGreen);
else
    Info40_OK = new SolidColorBrush(Colors.Red);

如果想避免重复创建实例、提升效率,也可以直接使用系统内置的预定义Brush实例:

if (Info40 >= 20)
    Info40_OK = Brushes.DarkGreen;
else
    Info40_OK = Brushes.Red;

Brushes类(位于System.Windows.Media命名空间)提供了各类常用颜色的SolidColorBrush实例,直接调用即可。


内容的提问来源于stack exchange,提问作者Dominique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:47:04