Feedback

C# - Color Extension-Methods

Veröffentlicht von am 17.11.2009
(2 Bewertungen)
Color border = Color.Red;

string borderHex = border.ColorToHex();

border = borderHex.HexToColor();
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

public static Color? HexToColor(this string hex)
{
  if (hex.IsNullOrEmpty() || !hex.IsHexcode())
    return null;

  int red, green, blue = 0;
  try
  {
    if (hex.Length == 3)
    {
      red = int.Parse(hex.Substring(0, 1), System.Globalization.NumberStyles.AllowHexSpecifier);
      green = int.Parse(hex.Substring(1, 1), System.Globalization.NumberStyles.AllowHexSpecifier);
      blue = int.Parse(hex.Substring(2, 1), System.Globalization.NumberStyles.AllowHexSpecifier);
    }
    else if (hex.Length == 6)
    {
      red = int.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
      green = int.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
      blue = int.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
    }
    else
      return null;
  }
  catch
  {
    return null;
  }

  if (red < 0 || red > 255)
    return null;
  if (green < 0 || green > 255)
    return null;
  if (blue < 0 || blue > 255)
    return null;

  return Color.FromArgb(red, green, blue);
}

public static string ColorToHex(this Color clr)
{
  int red   = clr.R;
  int green = clr.G;
  int blue  = clr.B;

  string colorHex = "#";
  colorHex += String.Format("{0:X02}", red);
  colorHex += String.Format("{0:X02}", green);
  colorHex += String.Format("{0:X02}", blue);
  return colorHex;
}
Abgelegt unter Color, Extension, Method.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!