首页 > 代码库 > C#的颜色解析及操作和相关Brush

C#的颜色解析及操作和相关Brush

一、颜色表示方式


        //
        // Summary:
        //     Creates a System.Drawing.Color structure from a 32-bit ARGB value.
        //
        // Parameters:
        //   argb:
        //     A value specifying the 32-bit ARGB value.
        //
        // Returns:
        //     The System.Drawing.Color structure that this method creates.
        public static Color FromArgb(int argb);argb-such as 0xff0000ff, the first "ff" is the alpha value, and then R,G,B. if the alpha is "00" the color turn to be transparent

        //
        // Summary:
        //     Creates a System.Drawing.Color structure from the specified System.Drawing.Color
        //     structure, but with the new specified alpha value. Although this method allows
        //     a 32-bit value to be passed for the alpha value, the value is limited to
        //     8 bits.
        //
        // Parameters:
        //   alpha:
        //     The alpha value for the new System.Drawing.Color. Valid values are 0 through
        //     255.
        //
        //   baseColor:
        //     The System.Drawing.Color from which to create the new System.Drawing.Color.
        //
        // Returns:
        //     The System.Drawing.Color that this method creates.
        //
        // Exceptions:
        //   System.ArgumentException:
        //     alpha is less than 0 or greater than 255.
        public static Color FromArgb(int alpha, Color baseColor);
        //
        // Summary:
        //     Creates a System.Drawing.Color structure from the specified 8-bit color values
        //     (red, green, and blue). The alpha value is implicitly 255 (fully opaque).
        //     Although this method allows a 32-bit value to be passed for each color component,
        //     the value of each component is limited to 8 bits.
        //
        // Parameters:
        //   red:
        //     The red component value for the new System.Drawing.Color. Valid values are
        //     0 through 255.
        //
        //   green:
        //     The green component value for the new System.Drawing.Color. Valid values
        //     are 0 through 255.
        //
        //   blue:
        //     The blue component value for the new System.Drawing.Color. Valid values are
        //     0 through 255.
        //
        // Returns:
        //     The System.Drawing.Color that this method creates.
        //
        // Exceptions:
        //   System.ArgumentException:
        //     red, green, or blue is less than 0 or greater than 255.
        public static Color FromArgb(int red, int green, int blue);
        //
        // Summary:
        //     Creates a System.Drawing.Color structure from the four ARGB component (alpha,
        //     red, green, and blue) values. Although this method allows a 32-bit value
        //     to be passed for each component, the value of each component is limited to
        //     8 bits.
        //
        // Parameters:
        //   alpha:
        //     The alpha component. Valid values are 0 through 255.
        //
        //   red:
        //     The red component. Valid values are 0 through 255.
        //
        //   green:
        //     The green component. Valid values are 0 through 255.
        //
        //   blue:
        //     The blue component. Valid values are 0 through 255.
        //
        // Returns:
        //     The System.Drawing.Color that this method creates.
        //
        // Exceptions:
        //   System.ArgumentException:
        //     alpha, red, green, or blue is less than 0 or greater than 255.
        public static Color FromArgb(int alpha, int red, int green, int blue);

二、颜色操作


1、String转换成Color 
            Color color = (Color)ColorConverter.ConvertFromString(string);

2、String转换成Brush

            BrushConverter brushConverter = new BrushConverter();
            Brush brush = (Brush)brushConverter.ConvertFromString(string);

3、Color转换成Brush

            Brush brush = new SolidColorBrush(color));

4、Brush转换成Color有两种方法:

(1)先将Brush转成string,再转成Color。

            Color color= (Color)ColorConverter.ConvertFromString(brush.ToString());

(2)将Brush转成SolidColorBrush,再取Color。

            Color color= ((SolidColorBrush)CadColor.Background).Color;

 三、Brush

// (实心刷)
Rectangle rect1 = new Rectangle(20, 80, 250, 100);
SolidBrush sbrush1 = new SolidBrush(Color.DarkOrchid);                  
SolidBrush sbrush2 = new SolidBrush(Color.Aquamarine);      
SolidBrush sbrush3 = new SolidBrush(Color.DarkOrange);

         //(梯度刷)
                  LinearGradientBrush lbrush1 = new LinearGradientBrush(rect1,
                  Color.DarkOrange, Color.Aquamarine,
                  LinearGradientMode.BackwardDiagonal);

                 //(阴影刷)
                 HatchBrush hbrush1 = new HatchBrush(HatchStyle.DiagonalCross,
                  Color.DarkOrange, Color.Aquamarine);
                  HatchBrush hbrush2 = new HatchBrush(HatchStyle.DarkVertical,
                  Color.DarkOrange, Color.Aquamarine);
                  HatchBrush hbrush3 = new HatchBrush(HatchStyle.LargeConfetti,
                  Color.DarkOrange, Color.Aquamarine);

                 //(纹理刷)
                  textureBrush = new TextureBrush(new Bitmap(@"e:\123.jpg"));
                  //e.Graphics.FillRectangle(hbrush1, rect1);
                  //e.Graphics.FillRectangle(sbrush1, rect1);
                  //e.Graphics.FillRectangle(textureBrush, rect1);
                  e.Graphics.FillRectangle(lbrush1, rect1);

转自:http://huangdingjun.blog.163.com/blog/static/3110639201011223130486/