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.
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.
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
.
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.
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.
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.
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.
Se även
.NET Desktop feedback