c# 如何将Color转换为只有1个参数的整形数值?

作者&投稿:宁岚 (若有异议请与网页底部的电邮联系)
c# winform 如何实现16进制颜色值的转换~

不知道有没有直接提供这种color结构的转换,MSDN上也没有发现这种使用方式,但是可以直接使用RGB来表示:

我和你说一下#CE76D1到RGB的转换吧,希望能帮助你:
16进制表示颜色值:CE76D1=>Red:CE Green:76 Blue:D1
只需将其转换为10进制就可以了,方法如下:
16进制中 C=12;D=13;E=14
转换为10进制:
Red:CE=C*16+E=12*16+14=206
Green:76=7*16+6=118
Blue:D1=13*16+1=209
所以#CE76D1转换为RGB后为:206 118 209
然后可以用以下方式:
this.textbox.BackColor = System.Drawing.Color.FromArgb(206,118,209);
就能实现你的想法了,当然你完全可以用PS等软件直接得到RGB值,如果你一定要使用#CE76D1的方式表示,你可以按照上面的方法编写一个类来实现它们之间的转换。

希望能帮到你,大家互相学习

// 看看这样行不行 [STAThread] public static void Main(string[] args) { var argbColor = Color.FromArgb(255, 255, 0, 0); var colorName = FindColorName(argbColor); if (string.IsNullOrEmpty(colorName)) Console.WriteLine("未找到"); else Console.WriteLine(colorName); Console.ReadKey(); } private static string FindColorName(Color argbColor) { var propertyInfos = typeof (Color).GetProperties(BindingFlags.Public | BindingFlags.Static); foreach (var propertyInfo in propertyInfos) { if (!propertyInfo.CanRead) continue; var value = propertyInfo.GetValue(null, null); if (!(value is Color)) continue; if (((Color) value).ToArgb() == argbColor.ToArgb()) return propertyInfo.Name; } return null; }

利用Color.ToArgb 方法可实现。

Color.ToArgb():获取此 Color 结构的 32 位 ARGB 值。
命名空间: System.Drawing
程序集: System.Drawing(在 System.Drawing.dll 中)
publicint ToArgb()

返回值
类型:System.Int32
此 Color 的 32 位ARGB 值。

备注:32 位 ARGB 值的字节顺序为 AARRGGBB。 由 AA 表示的最高有效字节 (MSB) 是 alpha 分量值。 分别由 RR、GG 和 BB 表示的第二、第三和第四个字节分别为红色、绿色和蓝色颜色分量。

示例:
下面的代码示例设计用于 Windows 窗体,它需要 PaintEventArgse(这是 Paint 事件处理程序的参数)。 代码执行下列操作:
· 循环访问 KnownColor 枚举元素以找到所有具有非零绿色分量和零值红色分量、且不是系统颜色的已知颜色。在每次迭代期间,如果 KnownColor 元素与条件匹配,则将该元素保存到数组中。使用画笔绘制矩形。每个矩形都绘制为与第一个项目符号中所述的条件匹配的 KnownColor。 还显示 KnownColor 的名称及其分量值。该示例显示某些已知颜色、颜色的名称及其四个分量值。 ToArgb 方法用作显示分量值的预备步骤。

publicvoid ToArgbToStringExample1(PaintEventArgs e)
{
Graphics g = e.Graphics;

// Color structure used for temporary storage.
Color someColor = Color.FromArgb(0);

// Array to store KnownColor values that match the criteria.
KnownColor[] colorMatches = new KnownColor[167];

// Number of matches found.
int count = 0;

// Iterate through the KnownColor enums to find all corresponding colors
// that have a nonzero green component and zero-value red component and
// that are not system colors.
for (KnownColor enumValue = 0;
enumValue <= KnownColor.YellowGreen; enumValue++)
{
someColor = Color.FromKnownColor(enumValue);
if (someColor.G != 0 && someColor.R == 0 && !someColor.IsSystemColor)
colorMatches[count++] = enumValue;
}
SolidBrush myBrush1 = new SolidBrush(someColor);
Font myFont = new Font("Arial", 9);
int x = 40;
int y = 40;

// Iterate through the matches that were found and display each color that
// corresponds with the enum value in the array. also display the name of
// the KnownColor and the ARGB components.
for (int i = 0; i < count; i++)
{

// Display the color.
someColor = Color.FromKnownColor(colorMatches[i]);
myBrush1.Color = someColor;
g.FillRectangle(myBrush1, x, y, 50, 30);

// Display KnownColor name and the four component values. To display the
// component values: Use the ToArgb method to get the 32-bit ARGB value
// of someColor, which was created from a KnownColor. Then create a
// Color structure from the 32-bit ARGB value and set someColor equal to
// this new Color structure. Then use the ToString method to convert it to
// a string.
g.DrawString(someColor.ToString(), myFont, Brushes.Black, x + 55, y);
someColor = Color.FromArgb(someColor.ToArgb());
g.DrawString(someColor.ToString(), myFont, Brushes.Black, x + 55, y + 15);
y += 40;
}
}

用 Color.ToArgb()
见 http://msdn.microsoft.com/zh-SG/library/system.drawing.color.toargb
我建议你用web的格式去存储颜色
见:http://msdn.microsoft.com/zh-SG/library/system.drawing.colortranslator.fromhtml(v=vs.90)


平鲁区13399948638: c# 如何将Color转换为只有1个参数的整形数值? -
冶盼头孢: 利用Color.ToArgb 方法可实现.Color.ToArgb():获取此 Color 结构的 32 位 ARGB 值.命名空间: System.Drawing 程序集: System.Drawing(在 System.Drawing.dll 中) publicint ToArgb() 返回值 类型:System.Int32 此 Color 的 32 位...

平鲁区13399948638: c# winform 如何实现16进制颜色值的转换 -
冶盼头孢: 代码如下:Color c=Color.FromArgb(0,Convert.ToInt32("CE",16),Convert.ToInt32("76",16)Convert.ToInt32("D1",16));//这里的CE、76和D1可以用String的Substring方法取得

平鲁区13399948638: C#怎么实现color类与字符串的转换 -
冶盼头孢: 1、Color.FromArgb(120,243,244,247)先将F3,F4,F7转化为十进制数,再调用以上方法.2、把F3 F4 F7转成10进制 然后用 Color.FromArgb3、Color yourColor = Color.FromName("#F3F4F7");4、比较笨一点的办法: string a="#F3F4F7"; ...

平鲁区13399948638: C# 颜色转换问题 -
冶盼头孢: 假设你已经有一个Color的实例,叫做c,你完全可以单独转换啊:string s=c.R.ToString("X")+c.G.ToString("X")+c.B.ToString("X");

平鲁区13399948638: c# Brush赋RGB值 -
冶盼头孢: Brush是一个抽象类.以SolidBrush为例 1 2Color color = Color.FromArgb(255, 0, 0); Brush brush = newSolidBrush(color); 或者,简写为1Brush brush = newSolidBrush(Color.FromArgb(255, 0, 0)); 其中的Color.FromArgb的定义如下图

平鲁区13399948638: c#中如何将字符串与颜色相互转换 -
冶盼头孢: string c1 = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.Red);// c1 = "#ff0000";或c1 = "Red"; System.Drawing.Color c2 = System.Drawing.ColorTranslator.FromHtml("#ff0000");

平鲁区13399948638: c# 如何将object类型转换成Color类型? -
冶盼头孢: Color color; if(object.GetType()==Color) { color=(Color)object; }

平鲁区13399948638: c# 如何16进制颜色值转换成color值 -
冶盼头孢: 把十六进制颜色转化为color对象 ColorTranslator.FromHtml("#FF0000") 或 ColorTranslator.FromHtml("Red");把color对象转化为十六进制颜色 ColorTranslator.ToHtml(Color.FromArgb(255,255,255)) 或 ColorTranslator.ToHtml(Color.Red);

平鲁区13399948638: c#中怎样去掉labe l和 linklabel的背景颜色 -
冶盼头孢: label1.BackColor=Color.Transparent; 或者将label1的BackColor改为Control

平鲁区13399948638: c# 如何用颜色的16进制值定义Color? -
冶盼头孢: 1.Color myColor = ColorTranslator.FromHtml("#FF000旦发测菏爻孤诧酞超喀0"). 2.ColorTranslator.FromHtml("#FF0000"). ColorTranslator.FromHtml("Red") 3.ColorTranslator.FromHtml("#FF0000").ColorTranslator.FromHtml("...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网