Feedback

C# - Hex Literale als Farbe verwenden.

Veröffentlicht von am 05.11.2015
(1 Bewertungen)
Um in C#-WPF Anwendungen Farben anzulegen, nutzt man Color.FromRgb (https://msdn.microsoft.com/en-us/library/system.windows.media.color.fromrgb(v=vs.110).aspx). Diese API ist manchmal aber etwas sperrig. Immerhin kann man Farben ja mit Hilfe hexadezimaler Literale angeben, die eigentlich nur strukturierte Integer darstellen.

Das folgende Code-Snippet erlaubt genau das:

Beispiel:


Color red = 0xff0000.Rgb();
Color green = 0x00ff00.Rgb();
Color blue = 0x0000ff.Rgb();
using System.Windows.Media.Color; 
// From PresentationCore.dll

internal static class HexToColorExtension
{
    public static Color Rgb(this int hex)
    {
        return Color.FromRgb((byte)(hex >> 16), (byte)(hex >> 8), (byte)(hex >> 0));
    }
 
    public static Color Argb(this uint hex)
    {
        return Color.FromArgb((byte)(hex >> 24), (byte)(hex >> 16), (byte)(hex >> 8), (byte)(hex >> 0));
    }
 
    public static Color Argb(this int hex)
    {
        return Color.FromArgb((byte)(hex >> 24), (byte)(hex >> 16), (byte)(hex >> 8), (byte)(hex >> 0));
    }
}
Abgelegt unter Color, RGB, Hex.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!