C# 将RGB int值转换为c中带有0x前缀的十六进制格式#

C# 将RGB int值转换为c中带有0x前缀的十六进制格式#,c#,hex,rgb,colordialog,C#,Hex,Rgb,Colordialog,我正在尝试使用以下代码将RGB值转换为c#中的十六进制格式: int ColorValue = Color.FromName("mycolor").ToArgb(); string ColorHex = string.Format("{0:x6}", ColorValue); colorHex值类似于此格式ffffff 00,但我需要将其更改为:0x0000。我如何才能做到这一点 致意 我对c#表单应用程序非常陌生。只需在格式字符串中添加0x部分: // Local variable name

我正在尝试使用以下代码将RGB值转换为c#中的十六进制格式:

int ColorValue = Color.FromName("mycolor").ToArgb();
string ColorHex = string.Format("{0:x6}", ColorValue);
colorHex
值类似于此格式
ffffff 00
,但我需要将其更改为:
0x0000
。我如何才能做到这一点

致意


我对c#表单应用程序非常陌生。

只需在格式字符串中添加
0x
部分:

// Local variable names to match normal conventions.

// Although Color doesn't have ToRgb, we can just mask off the top 8 bits,
// leaving RGB in the bottom 24 bits.
int colorValue = Color.FromName("mycolor").ToArgb() & 0xffffff;
string colorHex = string.Format("0x{0:x6}", colorValue);

如果您想要大写十六进制值而不是小写,请使用
“0x{0:X6}”

只需在格式字符串中添加
0x
部分:

// Local variable names to match normal conventions.

// Although Color doesn't have ToRgb, we can just mask off the top 8 bits,
// leaving RGB in the bottom 24 bits.
int colorValue = Color.FromName("mycolor").ToArgb() & 0xffffff;
string colorHex = string.Format("0x{0:x6}", colorValue);

如果需要大写十六进制值而不是小写,请使用
“0x{0:X6}”

如果只需要定义颜色RGB部分的3个字节,可以尝试此方法

    Color c = Color.FromName("mycolor");
    int ColorValue = (c.R * 65536) + (c.G * 256) + c.B;
    string ColorHex = string.Format("0x{0:X6}", ColorValue);

如果您只需要定义颜色RGB部分的3个字节,可以尝试以下方法

    Color c = Color.FromName("mycolor");
    int ColorValue = (c.R * 65536) + (c.G * 256) + c.B;
    string ColorHex = string.Format("0x{0:X6}", ColorValue);

谢谢Jon。但是我得到了这个错误:{System.FormatException:输入字符串的格式不正确。在System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,字符串格式,Object[]args)@EA:Uh,where?这在我提供的代码中不会发生。如果你也希望它是大写的(这是Steve的答案)你应该说明…这是我的错,但你的方法给了我这个结果:0xff008080@EA:啊,我明白了。这很容易修复。请参阅我的编辑。您不需要按照Steve的回答手动执行算术。谢谢Jon。但我遇到了以下错误:{System.FormatException:输入字符串的格式不正确。在System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,字符串格式,对象[]args)@EA:Uh,where?我提供的代码中不会出现这种情况。如果您也希望它是大写的(这是Steve的答案)你应该说明…这是我的错,但你的方法给了我这个结果:0xff008080@EA:啊,我明白了。这很容易修复。请看我的编辑。你不需要按照Steve的答案手动做算术。