2011-02-14 355 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));