2011-02-14 312 views
23

使用C#和Visual Studio 2010,如何在按下另一个按钮后更改按钮的背景颜色?我不包括系统吗??错误?C#更改按钮的背景颜色

我目前所面对的是:

ButtonToday.Background = Color.Red;

而且它不工作。

+2

Winform/WPF/SIlverlight/ASP.NET? –

+0

'this.Button1.BackgroundColor = newColor'? – Bobby

+0

你试过了什么代码?你在哪个平台上?是什么让你觉得你错过了一个命名空间? –

回答

53

的WinForm:

private void button1_Click(object sender, EventArgs e) 
{ 
    button2.BackColor = Color.Red; 
} 

WPF:

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    button2.Background = Brushes.Blue; 
} 
+0

我遇到的问题是'BackColor'出现错误 - 在Visual Studio中用红色加下划线。 –

+0

添加了WPF示例。 – Feroc

+1

确保你'使用'System.Windows.Media.Brushes而不是System.Drawing.Brush - (http://msdn.microsoft.com/en-us/library/system.windows.media.brushes.aspx ) –

12

在WPF中,背景不是一个Color,它是一个Brush。所以,尝试一下本作首发:

using System.Windows.Media; 

// .... 

ButtonToday.Background = new SolidColorBrush(Colors.Red); 

更理智,但是,你应该看看XAML中,而不是在代码中这样做。

1

我在第一次为设置WPF应用程序控件的颜色时遇到了麻烦。 默认情况下它不包括System.Windows.Media,但确实包含Windows.UI.Xaml.Media,它有一些预先填充的颜色。

我结束了使用下面的代码行来得到它的工作:

grid.Background.SetValue(SolidColorBrush.ColorProperty, Windows.UI.Colors.CadetBlue); 

你应该能够改变grid.Background大多数其他控件,然后更改CadetBlue任何它所提供的其他颜色的。

4

代码设置背景颜色,SolidColor

button.Background = new SolidColorBrush(Color.FromArgb(Avalue, rValue, gValue, bValue)); 
+0

不错的选择添加自定义颜色与系统颜色。 –

+0

同样对于那些不熟悉第一个重载的人,像我一样...它代表Alpha值0到255,并确定背景的透明度,其中255是完全固定的:https://msdn.microsoft.com/en-us /library/system.drawing.color.fromargb(v=vs.110).aspx –

0

我怀疑是否有这些的应该工作。 尝试: 首先在代码页的开头导入名称空间,如下所示。

using System.Drawing; 

然后在代码中。

Button4.BackColor = Color.LawnGreen; 

希望它有帮助。

1
// WPF 

// Defined Color 
button1.Background = Brushes.Green; 

// Color from RGB 
button2.Background = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));