logo
CSharp_Graphics

Заливка эллипса с использованием градиента контура

По умолчанию кисть градиента контура не расширяется на области вне границы этого контура. Если кисть градиента контура используется для заливки фигуры, которая заходит за границу данного контура, области вне границы контура не заливаются.

-------------

To specify points on the boundary

// Put the points of a polygon in an array.

Point[] points = {

new Point(75, 0),

new Point(100, 50),

new Point(150, 50),

new Point(112, 75),

new Point(150, 150),

new Point(75, 100),

new Point(0, 150),

new Point(37, 75),

new Point(0, 50),

new Point(50, 50)};

// Use the array of points to construct a path.

GraphicsPath path = new GraphicsPath();

path.AddLines(points);

// Use the path to construct a path gradient brush.

PathGradientBrush pthGrBrush = new PathGradientBrush(path);

// Set the color at the center of the path to red.

pthGrBrush.CenterColor = Color.FromArgb(255, 255, 0, 0);

// Set the colors of the points in the array.

Color[] colors = {

Color.FromArgb(255, 0, 0, 0),

Color.FromArgb(255, 0, 255, 0),

Color.FromArgb(255, 0, 0, 255),

Color.FromArgb(255, 255, 255, 255),

Color.FromArgb(255, 0, 0, 0),

Color.FromArgb(255, 0, 255, 0),

Color.FromArgb(255, 0, 0, 255),

Color.FromArgb(255, 255, 255, 255),

Color.FromArgb(255, 0, 0, 0),

Color.FromArgb(255, 0, 255, 0)};

pthGrBrush.SurroundColors = colors;

// Fill the path with the path gradient brush.

e.Graphics.FillPath(pthGrBrush, path);