Sdílet prostřednictvím


Štětce a vyplněné obrazce v GDI+

Uzavřený obrazec, například obdélník nebo tři tečky, se skládá z obrysu a interiéru. Obrys je nakreslen perem a interiér je vyplněn štětcem. GDI+ poskytuje několik tříd kartáčů pro vyplnění interiérů uzavřených obrazců: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrusha PathGradientBrush. Všechny tyto třídy dědí z Brush třídy. Následující obrázek znázorňuje obdélník vyplněný plným štětcem a třemi tečkami vyplněnými šrafovacím kartáčem.

Screenshot of a rectangle filled with a solid brush and an ellipse filled with a hatch brush.

Plné štětce

K vyplnění uzavřeného obrazce potřebujete instanci Graphics třídy a objektu Brush. Instance Graphics třídy poskytuje metody, jako FillRectangleFillEllipsea a a Brush ukládá atributy výplně, jako je barva a vzor. Předá Brush se jako jeden z argumentů metodě fill. Následující příklad kódu ukazuje, jak vyplnit tři tečky plnou červenou barvou.

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);
Dim mySolidBrush As New SolidBrush(Color.Red)
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)

Poznámka:

V předchozím příkladu je štětec typu SolidBrush, který dědí z Brush.

Šrafovací štětce

Když vyplníte obrazec šrafovacím štětcem, zadáte barvu popředí, barvu pozadí a styl šrafování. Barva popředí je barva šrafování.

HatchBrush myHatchBrush =
   new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);
Dim myHatchBrush As _
   New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)

GDI+ poskytuje více než 50 šrafovaných stylů; tři styly zobrazené na následujícím obrázku jsou Horizontal, ForwardDiagonala Cross.

Screenshot of three ellipses that are filled with a horizontal hatch brush, forward diagonal hatch brush, and a cross hatch brush.

Texturové štětce

Pomocí štětce textury můžete vyplnit obrazec vzorem uloženým v rastrovém obrázku. Předpokládejme například, že následující obrázek je uložen v souboru disku s názvem MyTexture.bmp.

Screenshot of the My Texture dot b m p file.

Následující příklad kódu ukazuje, jak vyplnit tři tečky opakováním obrázku uloženého v MyTexture.bmp.

Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);
Dim myImage As Image = Image.FromFile("MyTexture.bmp")
Dim myTextureBrush As New TextureBrush(myImage)
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)

Následující obrázek znázorňuje vyplněné tři tečky.

Screenshot of an ellipse that is filled with a texture brush.

Přechodové štětce

GDI+ poskytuje dva druhy přechodových štětců: lineární a cestu. Pomocí lineárního přechodového štětce můžete vyplnit obrazec barvou, která se postupně mění při procházení obrazce vodorovně, svisle nebo diagonálně. Následující příklad kódu ukazuje, jak vyplnit tři tečky vodorovným přechodovým štětcem, který se při pohybu od levého okraje tří teček k pravému okraji změní z modré na zelenou.

LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
   myRectangle,
   Color.Blue,
   Color.Green,
   LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);
Dim myLinearGradientBrush As New LinearGradientBrush( _
   myRectangle, _
   Color.Blue, _
   Color.Green, _
   LinearGradientMode.Horizontal)
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)

Následující obrázek znázorňuje vyplněné tři tečky.

Screenshot of an ellipse filled with a horizontal gradient brush.

Štětec přechodu cesty lze nakonfigurovat tak, aby při procházení od středu obrazce směrem k okraji změnil barvu.

Screenshot of an ellipse filled with a path gradient brush.

Přechodové štětce cesty jsou poměrně flexibilní. Přechodový štětec použitý k vyplnění trojúhelníku na následujícím obrázku se postupně mění z červeného na střed na každou ze tří různých barev na vrcholech.

Screenshot of a triangle filled with a path gradient brush.

Viz také