Dela via


Penslar och fyllda figurer i GDI+

En sluten form, till exempel en rektangel eller en ellips, består av en kontur och en inredning. Konturen ritas med en penna och insidan fylls med en borste. GDI+ innehåller flera penselklasser för att fylla interiören i stängda former: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushoch PathGradientBrush. Alla dessa klasser ärver från klassen Brush. Följande bild visar en rektangel fylld med en fast borste och en ellips fylld med en luckborste.

Skärmbild av en rektangel fylld med en fast borste och en ellips fylld med en luckborste.

Heldragna penslar

För att fylla en sluten form behöver du en instans av klassen Graphics och en Brush. Instansen av klassen Graphics innehåller metoder, till exempel FillRectangle och FillEllipse, och Brush lagrar attribut för fyllningen, till exempel färg och mönster. Brush skickas som ett av argumenten till fyllningsmetoden. I följande kodexempel visas hur du fyller en ellips med en röd färg.

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)

Not

I föregående exempel är penseln av typen SolidBrush, som ärver från Brush.

Kläcka penslar

När du fyller en form med en skrafferingborste anger du en förgrundsfärg, en bakgrundsfärg och en skrafferingstyp. Förgrundsfärgen är färgen på kläckningen.

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

GDI+ ger mer än 50 mönsterstilar; de tre stilarna som visas i följande bild är Horizontal, ForwardDiagonaloch Cross.

Skärmbild av tre ellipser som är fyllda med en vågrät streckfyllning, framåtdiagonal streckfyllning, och en korsstreckfyllning.

Texturpenslar

Med en strukturborste kan du fylla en form med ett mönster som lagras i en bitmapp. Anta till exempel att följande bild lagras i en diskfil med namnet MyTexture.bmp.

Skärmbild av filen My Texture dot b m p.

Följande kodexempel visar hur du fyller en ellips genom att upprepa bilden som lagras i 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)

Följande bild visar den fyllda ellipsen.

Skärmbild av en ellips som är fylld med en texturborste.

Toningspenslar

GDI+ innehåller två typer av gradientborstar: linjär och bana. Du kan använda en linjär toningsborste för att fylla en form med färg som ändras gradvis när du rör dig över formen vågrätt, lodrätt eller diagonalt. I följande kodexempel visas hur du fyller en ellips med en vågrät toningsborste som ändras från blå till grön när du flyttar från ellipsens vänstra kant till högerkanten.

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)

Följande bild visar den fyllda ellipsen.

Skärmbild av en ellips fylld med en horisontell gradientborste.

En gradientpensel för banor kan konfigureras för att ändra färg när du rör dig från mitten av en form mot kanten.

Skärmbild av en ellips fylld med en lutningsborste för sökväg.

Banutgångspenslar är ganska flexibla. Toningsborsten som används för att fylla triangeln i följande bild ändras gradvis från rött i mitten till var och en av tre olika färger vid hörnen.

Skärmbild av en triangel fylld med en sökvägsgradientpensel.

Se även