2011-02-14 3 views
23

Sử dụng C# và Visual Studio 2010, làm cách nào để thay đổi màu nền của nút khi nhấn nút khác? Tôi không bao gồm một hệ thống.? sai rồi?C# Thay đổi màu nền của nút A

Những gì tôi có vào lúc này là:

ButtonToday.Background = Color.Red;

Và nó không hoạt động.

+2

Winform/WPF/SIlverlight/ASP.NET? –

+0

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

+0

Bạn đã thử mã nào? Bạn đang sử dụng nền tảng nào? Điều gì làm cho bạn nghĩ rằng bạn đang thiếu một không gian tên? –

Trả lời

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

Vấn đề tôi gặp phải là 'BackColor' sắp sửa xuất hiện lỗi - gạch dưới màu đỏ trong Visual Studio. –

+0

Đã thêm ví dụ WPF. – Feroc

+1

đảm bảo rằng bạn đang sử dụng 'System.Windows.Media.Brushes chứ không phải System.Drawing.Brush - (http://msdn.microsoft.com/en-us/library/system.windows.media.brushes.aspx) –

12

Trong WPF, nền không phải là một Color, nó là một Brush. Vì vậy, hãy thử điều này cho người mới bắt đầu:

using System.Windows.Media; 

// .... 

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

Một cách hợp lý hơn, bạn nên xem xét việc này trong Xaml thay vì mã.

1

Tôi gặp sự cố lúc đầu với cài đặt màu cho các điều khiển ứng dụng WPF. Dường như nó không bao gồm System.Windows.Media theo mặc định nhưng không bao gồm Windows.UI.Xaml.Media, có một số màu được điền sẵn.

tôi đã kết thúc bằng cách sử dụng dòng mã sau đây để có được nó để làm việc:

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

Bạn sẽ có thể thay đổi grid.Background với hầu hết các điều khiển khác và sau đó thay đổi CadetBlue với bất kỳ màu sắc khác nó cung cấp.

4

Mã cho màu sắc thiết lập nền, cho SolidColor:

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

Tùy chọn đẹp để thêm màu tùy chỉnh so với màu của hệ thống. –

+0

Ngoài ra đối với những người không quen với quá tải đầu tiên như tôi ... nó là viết tắt của giá trị Alpha 0 đến 255 và xác định độ trong suốt của nền nơi 255 là hoàn toàn rắn: https://msdn.microsoft.com/en-us /library/system.drawing.color.fromargb(v=vs.110).aspx –

0

tôi nghi ngờ nếu bất kỳ của những nên làm việc. Thử: Nhập khẩu không gian tên đầu tiên vào đầu trang mã như dưới đây.

using System.Drawing; 

sau đó trong mã.

Button4.BackColor = Color.LawnGreen; 

Hy vọng điều đó sẽ hữu ích.

1
// WPF 

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

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