Feedback

C# - ARGB-Farben

Veröffentlicht von am 11.11.2015
(0 Bewertungen)
Mit dieser Klasse kann man ARGB-Farben mithilfe ihres strings bzw. den Werten der Alpha-, Rot-, Grün- und Blau-Kanälen auflösen. Diese Klasse kann sowohl in Windows-Forms- und WPF-Projekten genutzt werden, da es mithilfe der bytes in ein System.Drawing.Color (WinForms) konvertiert werden kann und über den string in System.Windows.Media.Brush (WPF) mithilfe der Klasse BrushConverter konvertiert werden.

Da die Konvertierung von WinForms nach WPF und anders herum in nur wenigen Fällen Sinn ergibt ist diese Klasse für Erweiterungen, wie z.B. das WPFToolkit gedacht.
using System;
using System.Windows.Media;

namespace ClassLibrary1
{
    public class ARGBColor
    {
        public ARGBColor(string Hexadecimal)//#AARRGGBB
        {
            hexstring = Hexadecimal;
            char[] asChar = Hexadecimal.ToCharArray();
            string AA = Convert.ToString(asChar[1]) + Convert.ToString(asChar[2]);
            string RR = Convert.ToString(asChar[3]) + Convert.ToString(asChar[4]);
            string GG = Convert.ToString(asChar[5]) + Convert.ToString(asChar[6]);
            string BB = Convert.ToString(asChar[7]) + Convert.ToString(asChar[8]);
            a = Byte.Parse(AA, System.Globalization.NumberStyles.HexNumber);
            r = Byte.Parse(RR, System.Globalization.NumberStyles.HexNumber);
            g = Byte.Parse(GG, System.Globalization.NumberStyles.HexNumber);
            b = Byte.Parse(BB, System.Globalization.NumberStyles.HexNumber);
        }

        public ARGBColor(byte alpha, byte red, byte green, byte blue)
        {
            a = alpha;
            r = red;
            g = green;
            b = blue;
            hexstring = "#" + Convert.ToString(A, 16).PadLeft(2, '0') + Convert.ToString(R, 16).PadLeft(2, '0') + Convert.ToString(G, 16).PadLeft(2, '0') + Convert.ToString(B, 16).PadLeft(2, '0');
        }

        private string hexstring;
        public string Hexstring
        {
            get { return hexstring; }
            set
            {
                hexstring = value;
                char[] asChar = hexstring.ToCharArray();
                string AA = Convert.ToString(asChar[1]) + Convert.ToString(asChar[2]);
                string RR = Convert.ToString(asChar[3]) + Convert.ToString(asChar[4]);
                string GG = Convert.ToString(asChar[5]) + Convert.ToString(asChar[6]);
                string BB = Convert.ToString(asChar[7]) + Convert.ToString(asChar[8]);
                a = Byte.Parse(AA, System.Globalization.NumberStyles.HexNumber);
                r = Byte.Parse(RR, System.Globalization.NumberStyles.HexNumber);
                g = Byte.Parse(GG, System.Globalization.NumberStyles.HexNumber);
                b = Byte.Parse(BB, System.Globalization.NumberStyles.HexNumber);
            }
        }

        private byte a;
        public byte A
        {
            get { return a; }
            set { a = value; Hexstring = "#" + Convert.ToString(a, 16).PadLeft(2, '0') + Convert.ToString(r, 16).PadLeft(2, '0') + Convert.ToString(g, 16).PadLeft(2, '0') + Convert.ToString(b, 16).PadLeft(2, '0'); }
        }
        private byte r;
        public byte R
        {
            get { return r; }
            set { r = value; Hexstring = "#" + Convert.ToString(a, 16).PadLeft(2, '0') + Convert.ToString(r, 16).PadLeft(2, '0') + Convert.ToString(g, 16).PadLeft(2, '0') + Convert.ToString(b, 16).PadLeft(2, '0'); }
        }
        private byte b;
        public byte B
        {
            get { return b; }
            set { b = value; Hexstring = "#" + Convert.ToString(a, 16).PadLeft(2, '0') + Convert.ToString(r, 16).PadLeft(2, '0') + Convert.ToString(g, 16).PadLeft(2, '0') + Convert.ToString(b, 16).PadLeft(2, '0'); }
        }
        private byte g;
        public byte G
        {
            get { return g; }
            set { g = value; Hexstring = "#" + Convert.ToString(a, 16).PadLeft(2, '0') + Convert.ToString(r, 16).PadLeft(2, '0') + Convert.ToString(g, 16).PadLeft(2, '0') + Convert.ToString(b, 16).PadLeft(2, '0'); }
        }
    }
}
Abgelegt unter Argb, Farben.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!