如何在xaml.cs文件中设置背景颜色?[副本]

xjreopfe  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(121)

此问题已在此处有答案

Set background color of WPF Textbox in C# code(8个回答)
15天前关闭。
我有一个XAML,包含以下条目:

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

我在XAML.cs文件中有以下代码,用于填充绑定值:

Info40   = source.Info40;

”这是工作很好。
现在我也想改变背景颜色,我尝试如下:

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

这不起作用,因为Info40_OKBrush,而Colors.DarkGreenColor,而在XAML中,使用固定颜色可以正常工作,如下所示:

Background="DarkGreen"

所以,简单的问题:如何在XAML.cs文件中将Info40_OK值设置为DarkGreen

e37o9pze

e37o9pze1#

在XAML中,Background属性需要Brush对象,而不仅仅是Color。当您在XAML中设置Background=“DarkGreen”时,它会自动为您创建一个带有DarkGreen颜色的SolidColorBrush。
若要在代码隐藏(XAML.cs)中将Info40_OK属性设置为具有DarkGreen颜色的Brush,需要创建具有DarkGreen颜色的SolidColorBrush并将其分配给Info40_OK属性。你可以这样做:

using System.Windows.Media;

// ...

// Calculate Info40_OK based on the condition
if (Info40 >= 20)
{
    Info40_OK = new SolidColorBrush(Colors.DarkGreen);
}
else
{
    Info40_OK = new SolidColorBrush(Colors.Red);
}

此代码根据您的条件创建一个颜色为DarkGreen或Red的SolidColorBrush,然后将其分配给Info40_OK属性,这是XAML对TextBlock的Background属性所期望的。

相关问题