C# 在WPF中将整数转换为颜色

C# 在WPF中将整数转换为颜色,c#,.net,wpf,colors,C#,.net,Wpf,Colors,如何在WPF中将整数转换为颜色? 例如,我想将16711935转换为颜色 如何在windows窗体和WPF中执行以下操作 myControl.Background = Color.FromArgb(myColorInt); System.Windows.Media.Color结构具有类似的方法,但其参数类型为Byte。您可以使用BitConverter类在字节数组和Int32之间进行转换。您想使用的是System.Drawing.Color,而不是System.Windows.Media.Co

如何在WPF中将整数转换为颜色? 例如,我想将16711935转换为颜色

如何在windows窗体和WPF中执行以下操作

myControl.Background = Color.FromArgb(myColorInt);

System.Windows.Media.Color结构具有类似的方法,但其参数类型为Byte。您可以使用BitConverter类在字节数组和Int32之间进行转换。

您想使用的是
System.Drawing.Color
,而不是
System.Windows.Media.Color

var myColor = System.Drawing.Color.FromArgb(16711935);

Ooookay,不确定这是否很漂亮,但您可以从一个
颜色
类转换为另一个,然后在
SolidColorBrush
类中使用它:

myControl.Background = new SolidColorBrush(
  System.Windows.Media.Color.FromArgb(myColor.A,myColor.R,myColor.G,myColor.B));
使用该类将值转换为字节数组,这样就不需要导入其他命名空间

byte[] bytes = BitConverter.GetBytes(16711935);
this.Background = new SolidColorBrush( Color.FromArgb(bytes[3],bytes[2],bytes[1],bytes[0]));

@GrantWinney WPF Color.FromArgb需要4个参数,即字节a、字节r、字节g、字节b。我已经编辑了这个问题。上面给出了“无法隐式转换”system.drawing.color“到”system.windows.Media.Brush“的错误。很好的解决方案。至少对我来说,与使用字节数组的公认答案相比,更容易一目了然地理解正在发生的事情。@非常好的答案。谢谢。这样做很好。但是请注意,如果整数包含按该顺序排列的argb值-alpha占据最左边的位,则可能需要将参数设置为Color.FromArgb,反之亦然。。。Color.FromArgb(字节[3]、字节[2]、字节[1]、字节[0])回答得很好,但正如Simon所说,如果要转换System.Drawing.Color.ToArgb方法输出的整数,字节确实需要反转。@Simon你说得对,只是验证了我自己并编辑了Mark的答案