2011-02-14 3 views
23

Usando C# e Visual Studio 2010, come posso cambiare il colore di sfondo di un pulsante quando viene premuto un altro pulsante? Non includo un sistema? sbagliato?C# Cambia il colore di sfondo di un pulsante

Quello che ho in questo momento è:

ButtonToday.Background = Color.Red;

E non funziona.

+2

Winform/WPF/SIlverlight/ASP.NET? –

+0

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

+0

Che codice hai provato? Quale piattaforma utilizzi? Cosa ti fa pensare che manchi un namespace? –

risposta

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

Il problema che sto riscontrando è che 'BackColor' ha un errore - rosso sottolineato in Visual Studio. –

+0

Aggiunto esempio WPF. – Feroc

+1

assicurati di utilizzare 'System.Windows.Media.Brushes e non System.Drawing.Brush - (http://msdn.microsoft.com/en-us/library/system.windows.media.brushes.aspx) –

12

In WPF, lo sfondo non è un Color, si tratta di un Brush. Quindi, provate questo per cominciare:

using System.Windows.Media; 

// .... 

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

più sensibilmente, anche se, probabilmente si dovrebbe guardare a fare questo nel tuo XAML anziché in codice.

1

All'inizio ho avuto problemi con l'impostazione dei colori per i controlli delle applicazioni WPF. Appare che non include System.Windows.Media per impostazione predefinita ma include Windows.UI.Xaml.Media, che ha alcuni colori pre-riempiti.

ho finito per usare la seguente riga di codice per farlo funzionare:

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

Si dovrebbe essere in grado di cambiare grid.Background alla maggior parte degli altri controlli e quindi cambiare CadetBlue qualsiasi altri colori che fornisce.

4

Codice per il colore di sfondo set, per SolidColor:

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

Bella opzione per aggiungere colori personalizzati rispetto ai colori di sistema. –

+0

Anche per coloro che non hanno familiarità con il primo sovraccarico come lo ero io ... indica il valore Alfa da 0 a 255 e determina la trasparenza dello sfondo in cui 255 è completamente solido: https://msdn.microsoft.com/en-us /library/system.drawing.color.fromargb(v=vs.110).aspx –

0

Dubito che una di queste dovrebbe funzionare. Prova: Prima importare lo spazio dei nomi all'inizio della tabella codici come di seguito.

using System.Drawing; 

quindi nel codice.

Button4.BackColor = Color.LawnGreen; 

Spero che sia d'aiuto.

1
// WPF 

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

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