C#更改按钮';背景色

C#更改按钮';背景色,c#,wpf,button,background,C#,Wpf,Button,Background,当按下另一个按钮时,按钮的背景色如何变化 我目前的情况是: ButtonToday.Background = Color.Red; 而且它不工作。WinForm: private void button1_Click(object sender, EventArgs e) { button2.BackColor = Color.Red; } WPF: 在WPF中,背景不是颜色,而是画笔。因此,先试试这个: using System.Windows.Media; // .... Bu

当按下另一个按钮时,按钮的背景色如何变化

我目前的情况是:

ButtonToday.Background = Color.Red;
而且它不工作。

WinForm:

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


在WPF中,背景不是
颜色
,而是
画笔
。因此,先试试这个:

using System.Windows.Media;

// ....

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

不过,更明智的是,您可能应该考虑在Xaml中而不是在代码中执行此操作。

起初,我在设置WPF应用程序控件的颜色时遇到了麻烦。 默认情况下,它似乎不包括
System.Windows.Media
,而是包括
Windows.UI.Xaml.Media
,其中包含一些预填充颜色

我最终使用了以下代码行使其工作:

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

您应该能够将网格背景更改为大多数其他控件,然后将CadetBlue更改为它提供的任何其他颜色。

设置背景颜色的代码,SolidColor的代码:

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

我怀疑其中任何一项是否有效。 尝试: 首先在代码页的开头导入名称空间,如下所示

using System.Drawing;
然后在代码中

Button4.BackColor = Color.LawnGreen;

希望有帮助。

Winform/WPF/SIlverlight/ASP.NET?
this.Button1.BackgroundColor=newColor
?您尝试过哪些代码?你在哪个站台?是什么让你认为你缺少了一个名称空间?它是一个使用VisualStudio2010的WPF。它不起作用。不是对您面临的问题的足够详细的描述。我遇到的问题是“BackColor”出现错误-在Visual Studio中用红色下划线。请确保您“使用”的是System.Windows.Media.Brush,而不是System.Drawing.Brush-()@Feroc有没有办法在按下按钮时设置背景色?@CBC_NS:我想你需要在MouseDown和MouseUp事件中更改颜色。添加自定义颜色和系统颜色的不错选项。对于像我这样不熟悉第一次过载的人来说也是如此。。。它代表Alpha值0到255,并确定255完全为实心的背景的透明度:欢迎使用堆栈溢出!请阅读。避免只发布代码答案,并在帖子中包含解释,说明为什么这可以解决问题。永远记住,你不仅要回答OP,还要回答未来的读者,比如你自己。尤其是在回答9岁的问题时。
// WPF

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

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

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

// Color from RGB
button2.Background = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
this.button2.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(29)))), ((int)(((byte)(190)))), ((int)(((byte)(149)))));