此问题已在此处有答案:
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_OK
是Brush
,而Colors.DarkGreen
是Color
,而在XAML中,使用固定颜色可以正常工作,如下所示:
Background="DarkGreen"
所以,简单的问题:如何在XAML.cs文件中将Info40_OK
值设置为DarkGreen
?
1条答案
按热度按时间e37o9pze1#
在XAML中,Background属性需要Brush对象,而不仅仅是Color。当您在XAML中设置Background=“DarkGreen”时,它会自动为您创建一个带有DarkGreen颜色的SolidColorBrush。
若要在代码隐藏(XAML.cs)中将Info40_OK属性设置为具有DarkGreen颜色的Brush,需要创建具有DarkGreen颜色的SolidColorBrush并将其分配给Info40_OK属性。你可以这样做:
此代码根据您的条件创建一个颜色为DarkGreen或Red的SolidColorBrush,然后将其分配给Info40_OK属性,这是XAML对TextBlock的Background属性所期望的。