Sdílet prostřednictvím


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

Uzavřený obrazec, například obdélník nebo elipsa, se skládá z obrysu a vnitřní části. 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 třídy Brush. Následující obrázek znázorňuje obdélník vyplněný plným štětcem a elipsu vyplněnou šrafurovaným štětcem.

snímek obrazovky s obdélníkem vyplněným plným štětcem a elipsou vyplněnou šrafovacím štětcem

Pevné štětce

K vyplnění uzavřeného obrazce potřebujete instanci třídy Graphics a Brush. Instance třídy Graphics poskytuje metody, jako jsou FillRectangle a FillEllipse, a Brush ukládá atributy výplně, jako je barva a vzor. Brush se předá jako jeden z argumentů metodě fill. Následující příklad kódu ukazuje, jak vyplnit elipsu 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ý je odvozen od 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 šrafovacích stylů a tři styly zobrazené na následujícím obrázku jsou Horizontal, ForwardDiagonala Cross.

Snímek obrazovky se třemi elipsami, které jsou vyplněné vodorovným šrafovacím vzorem, šrafovaným vzorem s dopřednou šikmou šrafou a křížovým šrafovacím vzorem.

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.

snímek obrazovky se souborem My Texture dot b m p

Následující příklad kódu ukazuje, jak vyplnit elipsu 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ěnou elipsu.

Snímek obrazovky elipsy vyplněné texturovým štětcem.

Přechodové kartáče

GDI+ poskytuje dva druhy gradientních štětců: lineární a cestové. 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 elipsu vodorovným přechodovým štětcem, který se při pohybu od levého okraje elipsy 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ěnou elipsu.

Snímek obrazovky elipsy vyplněné vodorovným přechodovým štětcem

Gradientní štětec lze nakonfigurovat tak, aby změnil barvu při posunu od středu obrazce k jeho okraji.

Snímek obrazovky elipsy vyplněné štětcem s přechodovým vzorem.

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é barvy ve středu na tři různé barvy na vrcholech.

snímek trojúhelníku na obrazovce vyplněného cestním gradientním štětcem

Viz také