GDI+: Gradient Brushes |
|
|
|
private: System::Void Form1_Paint(System::Object * sender, System::Windows::Forms::PaintEventArgs * e) { using namespace System::Drawing::Drawing2D; Rectangle rect(10, 10, 470, 300); LinearGradientBrush *lgb = new LinearGradientBrush(rect, Color::DarkRed, Color::White, LinearGradientMode::Vertical); e->Graphics->FillRectangle(lgb, 10, 10, 450, 280); } |
Horizontal: The first color, color1, is applied to the left section of the rect argument. The second color, color2, is applied to the right section of the rect argument BackwardDiagonal: The first color, color1, is applied to the top-right corner of the rect argument. The second color, color2, is applied to the bottom-left corner of the rect argument: ForwardDiagonal: The first color, color1, is applied to the top-left corner of the rect argument. The second color, color2, is applied to the bottom-right corner of the rect argument: The constructor used to produce the above orientation has the limitation that it provides only four options. If you want, you can apply any angular merge as you see fit. To do this, you can use one of the following constructors: public: LinearGradientBrush(Rectangle rect, Color color1, Color color2, float angle); public: LinearGradientBrush(RectangleF rect, Color color1, Color color2, float angle); The first argument, rect, is the rectangle inside of which the colors would be applied. The last argument, angle, is an angle measured clockwise, that will specify the orientation of the merging colors The second argument, color1, is the color that would be applied from the starting point. The second argument, color2, is the color that would be applied at the other end. Here is an example: |
private: System::Void Form1_Paint(System::Object * sender, System::Windows::Forms::PaintEventArgs * e) { using namespace System::Drawing::Drawing2D; Rectangle rect(10, 10, 470, 300); LinearGradientBrush *lgb = new LinearGradientBrush(rect, Color::DarkRed, Color::White, -65.24F); e->Graphics->FillRectangle(lgb, 10, 10, 450, 280); } |
Path Gradient Brushes |
The second type of gradient brush available is referred to as path gradient. This brush is applied on a path created by connecting a series of points to get a closed shape. The interior of the shape can then be filled as a gradient. To support path brushes, the .NET Framework provides the PathGradientBrush from the System.Drawing.Drawing2D namespace. Two of the constructors of this class are: public: PathGradientBrush(Point points[]); public: PathGradientBrush(PointF points[]); The argument passed to this constructor is an array of type Point. Here is an example: |
private: System::Void Form1_Paint(System::Object * sender, System::Windows::Forms::PaintEventArgs * e) { using namespace System::Drawing::Drawing2D; Point ptGraph[] = { Point(10, 10), Point(450, 10), Point(450, 250), Point(10, 250) }; PathGradientBrush *pgb = new PathGradientBrush(ptGraph); e->Graphics->FillRectangle(pgb, 10, 10, 450, 280); } |
|
||
Home | Copyright © 2004-2010 FunctionX, Inc. | |
|