转换VBColor值到十六进制值在c#

本文关键字:十六进制 VBColor 转换 | 更新日期: 2023-09-27 18:01:42

在c#中是否有办法将vbcolor值转换为十六进制值?例如:&H004080 (vbcolor)到#804000(十六进制值)。还是应该在外部转换值,然后将转换后的值放入我的代码中?

转换VBColor值到十六进制值在c#

我是这样做的,到目前为止它是有效的:

public static string VBColorToHexConverter(string vbColor) 
{
  string hexValue;
  string r = "", g = "", b = "";
  char[] vbValue = vbColor.ToCharArray();
  for (int i = 0; i < vbValue.Length; i++) 
  {
    r = vbValue[6].ToString() + vbValue[7].ToString();
    g = vbValue[4].ToString() + vbValue[5].ToString();
    b = vbValue[2].ToString() + vbValue[3].ToString();
  }
  hexValue = "#" + r + g + b;
  return hexValue;
}

需要将十六进制颜色转换为字符串:

将十六进制颜色字符串转换为RGB颜色:
Public Function ConvertToRbg(ByVal HexColor As String) As Color
    Dim Red As String
    Dim Green As String
    Dim Blue As String
    HexColor = Replace(HexColor, "#", "")
    Red = Val("&H" & Mid(HexColor, 1, 2))
    Green = Val("&H" & Mid(HexColor, 3, 2))
    Blue = Val("&H" & Mid(HexColor, 5, 2))
    Return Color.FromArgb(Red, Green, Blue)
End Function

c# -或者使用这个问题中描述的库:

如何使用。net从十六进制颜色代码中获得颜色?

using System.Windows.Media;
Color color = (Color)ColorConverter.ConvertFromString("#FFDFD991");