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]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

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!