Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na poniższej ilustracji przedstawiono dwie krzywe: jedną otwartą i jedną zamkniętą.
Interfejs zarządzany dla krzywych
Zamknięte krzywe mają wnętrze i dlatego mogą być wypełnione szczotką. Klasa Graphics w GDI+ udostępnia następujące metody wypełniania zamkniętych kształtów i krzywych: FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, FillPathi FillRegion. Za każdym razem, gdy wywołujesz jedną z tych metod, musisz przekazać jeden z określonych typów pędzli (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushlub PathGradientBrush) jako argument.
Metoda FillPie jest towarzyszem metody DrawArc. Podobnie jak metoda DrawArc rysuje część konturu wielokropka, metoda FillPie wypełnia część wnętrza wielokropka. Poniższy przykład rysuje łuk i wypełnia odpowiednią część wnętrza elipsy:
myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120);
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120);
myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120)
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120)
Na poniższej ilustracji przedstawiono łuk i wypełniony wykres kołowy.
Metoda FillClosedCurve jest towarzyszem metody DrawClosedCurve. Obie metody automatycznie zamykają krzywą, łącząc punkt końcowy z punktem początkowym. Poniższy przykład rysuje krzywą przechodzącą przez (0, 0), (60, 20) i (40, 50). Następnie krzywa jest automatycznie zamykana przez połączenie (40, 50) z punktem początkowym (0, 0), a wnętrze jest wypełnione jednolitym kolorem.
Point[] myPointArray =
{
new Point(0, 0),
new Point(60, 20),
new Point(40, 50)
};
myGraphics.DrawClosedCurve(myPen, myPointArray);
myGraphics.FillClosedCurve(mySolidBrush, myPointArray);
Dim myPointArray As Point() = _
{New Point(0, 0), New Point(60, 20), New Point(40, 50)}
myGraphics.DrawClosedCurve(myPen, myPointArray)
myGraphics.FillClosedCurve(mySolidBrush, myPointArray)
Metoda FillPath wypełnia wnętrza oddzielnych kawałków ścieżki. Jeśli kawałek ścieżki nie tworzy zamkniętej krzywej ani kształtu, metoda FillPath automatycznie zamyka ten fragment ścieżki przed wypełnieniem. Poniższy przykład rysuje i wypełnia ścieżkę składającą się z łuku, linii kardynanej, ciągu i kołowego:
SolidBrush mySolidBrush = new SolidBrush(Color.Aqua);
GraphicsPath myGraphicsPath = new GraphicsPath();
Point[] myPointArray =
{
new Point(15, 20),
new Point(20, 40),
new Point(50, 30)
};
FontFamily myFontFamily = new FontFamily("Times New Roman");
PointF myPointF = new PointF(50, 20);
StringFormat myStringFormat = new StringFormat();
myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.AddCurve(myPointArray);
myGraphicsPath.AddString("a string in a path", myFontFamily,
0, 24, myPointF, myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
myGraphics.FillPath(mySolidBrush, myGraphicsPath);
myGraphics.DrawPath(myPen, myGraphicsPath);
Dim mySolidBrush As New SolidBrush(Color.Aqua)
Dim myGraphicsPath As New GraphicsPath()
Dim myPointArray As Point() = { _
New Point(15, 20), _
New Point(20, 40), _
New Point(50, 30)}
Dim myFontFamily As New FontFamily("Times New Roman")
Dim myPointF As New PointF(50, 20)
Dim myStringFormat As New StringFormat()
myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180)
myGraphicsPath.AddCurve(myPointArray)
myGraphicsPath.AddString("a string in a path", myFontFamily, _
0, 24, myPointF, myStringFormat)
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110)
myGraphics.FillPath(mySolidBrush, myGraphicsPath)
myGraphics.DrawPath(myPen, myGraphicsPath)
Na poniższej ilustracji przedstawiono ścieżkę zarówno z wypełnieniem stałym, jak i bez niego. Należy pamiętać, że tekst w łańcuchu znaków jest obrysowany, ale nie wypełniony metodą DrawPath. Jest to metoda FillPath, która maluje wnętrza tych znaków w ciągu tekstowym.
Zobacz także
.NET Desktop feedback