Š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.
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.
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
.
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.
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.
Gradientní štětec lze nakonfigurovat tak, aby změnil barvu při posunu od středu obrazce k jeho okraji.
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.
Viz také
.NET Desktop feedback