Delen via


Padopmaaksynthax

Paden worden besproken in Vormen en Eenvoudige tekening in WPF Overview en het Geometry Overview, maar in dit onderwerp wordt de krachtige en complexe minitaal beschreven die u kunt gebruiken om padgeometrieën compacter op te geven met behulp van Extensible Application Markup Language (XAML).

Voorwaarden

Als u dit onderwerp wilt begrijpen, moet u bekend zijn met de basisfuncties van Geometry objecten. Zie het Geometrieoverzichtvoor meer informatie.

StreamGeometry and PathFigureCollection Mini-Languages

WPF biedt twee klassen die minitalen bieden voor het beschrijven van geometrische paden: StreamGeometry en PathFigureCollection.

  • U gebruikt de StreamGeometry minitaal bij het instellen van een eigenschap van het type Geometry, zoals de eigenschap Clip van een UIElement of de eigenschap Data van een Path-element. In het volgende voorbeeld wordt de syntaxis van het kenmerk gebruikt om een StreamGeometryte maken.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • U gebruikt de PathFigureCollection-minitaal bij het instellen van de eigenschap Figures van een PathGeometry. In het volgende voorbeeld wordt een kenmerksyntaxis gebruikt om een PathFigureCollection te maken voor een PathGeometry.

    <Path Stroke="Black" Fill="Gray">
      <Path.Data>
        <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" />
      </Path.Data>
    </Path>
    

Zoals u in de voorgaande voorbeelden kunt zien, zijn de twee minitalen vergelijkbaar. Het is altijd mogelijk om een PathGeometry te gebruiken in elke situatie waarin u een StreamGeometrykunt gebruiken; Dus welke moet je gebruiken? Gebruik een StreamGeometry wanneer u het pad niet hoeft te wijzigen nadat u het hebt gemaakt; gebruik een PathGeometry als u het pad moet wijzigen.

Zie het Geometrieoverzichtvoor meer informatie over de verschillen tussen PathGeometry en StreamGeometry objecten.

Een opmerking over witruimte

Ter beknoptheid wordt één spatie weergegeven in de volgende syntaxissecties, maar meerdere spaties zijn ook acceptabel wanneer één spatie wordt weergegeven.

Twee getallen hoeven niet te worden gescheiden door een komma of witruimte, maar dit kan alleen worden gedaan wanneer de resulterende tekenreeks ondubbelzinnig is. 2..3 is bijvoorbeeld twee getallen: '2'. En '.3'. Op dezelfde manier is 2-3 '2' en '-3'. Spaties zijn ook niet vereist voor of na opdrachten.

Syntaxis

De syntaxis van het attribuut Extensible Application Markup Language (XAML) voor een StreamGeometry bestaat uit een optionele FillRule-waarde en een of meer figuurbeschrijvingen.

StreamGeometry XAML-kenmerkgebruik
< objecteigenschap="[ fillRule] figureDescription[ figureDescription]* " ... />

De syntaxis voor het kenmerk Extensible Application Markup Language (XAML) van een PathFigureCollection bestaat uit een of meer figuurbeschrijvingen.

PathFigureCollection XAML-kenmerkgebruik
< objecteigenschap="figureDescription[ figureDescription]* " ... />
Term Beschrijving
vulregel System.Windows.Media.FillRule

Hiermee geeft u op of de StreamGeometry de EvenOdd of NonzeroFillRulegebruikt.

- F0 geeft de EvenOdd vulregel op.
- F1 geeft de Nonzero vulregel op.

Als u deze opdracht weglaat, gebruikt het subpad het standaardgedrag, wat EvenOddis. Als u deze opdracht opgeeft, moet u deze eerst plaatsen.
figureDescription Een figuur die bestaat uit een verplaatsingsopdracht, tekenopdrachten en een optionele sluitopdracht.

moveCommand drawCommands [ closeCommand ]
verplaatsOpdracht Een verplaatsingsopdracht waarmee het beginpunt van de afbeelding wordt opgegeven. Zie de sectie Verplaatscommando.
drawCommands Een of meer tekenopdrachten die de inhoud van de afbeelding beschrijven. Zie de sectie Tekenopdrachten.
opdracht sluiten Een optionele opdracht voor sluiten waarmee de afbeelding wordt gesloten. Zie de sectie Close Command.

Opdracht Verplaatsen

Hiermee geeft men het beginpunt van een nieuwe figuur aan.

Syntaxis
M beginPunt

-of-

m beginPunt
Term Beschrijving
startPunt System.Windows.Point

Het startpunt van een nieuwe figuur.

Een hoofdletter M geeft aan dat startPoint een absolute waarde is; een kleine letter m geeft aan dat startPoint een verschuiving is naar het vorige punt, of (0,0) als er geen bestaat. Als u meerdere punten geregistreerd hebt na het verplaatscommando, wordt er een lijn naar die punten getrokken hoewel u het lijncommando hebt opgegeven.

Tekenopdrachten

Een tekenopdracht kan bestaan uit verschillende vormopdrachten. De volgende vormopdrachten zijn beschikbaar: lijn, horizontale lijn, verticale lijn, kubieke Bezier-curve, kwadratische Bezier-curve, vloeiende kubieke Bezier-curve, vloeiende kwadratische Bezier-curve en elliptische boog.

U voert elke opdracht in met behulp van een hoofdletter of kleine letter: hoofdletters geven absolute waarden aan en kleine letters geven relatieve waarden aan: de besturingspunten voor dat segment zijn relatief ten opzichte van het eindpunt van het voorgaande voorbeeld.

Tip

Wanneer u meerdere opdrachten van hetzelfde type opeenvolgend invoert, kunt u de dubbele opdrachtinvoer weglaten; L 100,200 300,400 is bijvoorbeeld gelijk aan L 100,200 L 300,400.

Commandoregel

Hiermee maakt u een rechte lijn tussen het huidige punt en het opgegeven eindpunt. l 20 30 en L 20,30 zijn voorbeelden van geldige opdrachten.

Syntaxis
L endPoint-

-of-

l endPoint
Term Beschrijving
endPoint- System.Windows.Point

Het eindpunt van de lijn.

Een hoofdletter L geeft aan dat endPoint een absolute waarde is; een kleine letter l geeft aan dat endPoint een verschuiving is naar het vorige punt, of (0,0) als er geen bestaat.

Horizontale lijn commando

Hiermee maakt u een horizontale lijn tussen het huidige punt en de opgegeven x-coördinaat. H 90 is een voorbeeld van een geldige horizontale regelopdracht.

Syntaxis
H x

-of-

h x
Term Beschrijving
x System.Double

De x-coördinaat van het eindpunt van de lijn.

Een hoofdletter H geeft aan dat x een absolute waarde is; een kleine letter h geeft aan dat x een verschuiving is naar het vorige punt, of (0,0) als er geen bestaat.

Opdracht verticale regel

Hiermee maakt u een verticale lijn tussen het huidige punt en de opgegeven y-coördinaat. v 90 is een voorbeeld van een geldige verticale regelopdracht.

Syntaxis
V en

- of -

v
Term Beschrijving
en System.Double

De y-coördinaat van het eindpunt van de lijn.

Een hoofdletter V geeft aan dat y een absolute waarde is; een kleine letter v geeft aan dat y een verschuiving is naar het vorige punt, of (0,0) als er geen bestaat.

Opdracht kubieke Bézier-curve

Hiermee maakt u een kubieke Bezier-curve tussen het huidige punt en het opgegeven eindpunt met behulp van de twee opgegeven besturingspunten (controlPoint1 en controlPoint2). C 100,200 200,400 300,200 is een voorbeeld van een geldige curveopdracht.

Syntaxis
C controlPoint1controlPoint2endPoint

-of-

c controlPoint1controlPoint2endPoint
Term Beschrijving
controlPoint1 System.Windows.Point

Het eerste besturingspunt van de curve, waarmee de begintangens van de curve worden bepaald.
controlPoint2 System.Windows.Point

Het tweede besturingspunt van de curve, waarmee de eindtangens van de curve worden bepaald.
endPoint System.Windows.Point

Het punt waarop de curve wordt getekend.

Kwadratische bezier-curveopdracht

Hiermee maakt u een kwadratische Bezier-curve tussen het huidige punt en het opgegeven eindpunt met behulp van het opgegeven besturingspunt (controlPoint). q 100,200 300,200 is een voorbeeld van een geldige kwadratische Bezier-curveopdracht.

Syntaxis
Q controlPoint endPoint

-of-

q controlPoint endPoint
Term Beschrijving
controlPoint System.Windows.Point

Het besturingspunt van de curve, waarmee de begin- en eindtangens van de curve worden bepaald.
endPoint System.Windows.Point

Het punt waarop de curve wordt getekend.

Commando voor vloeiende kubische Bezier-curve

Hiermee maakt u een kubieke Bezier-curve tussen het huidige punt en het opgegeven eindpunt. Het eerste besturingspunt wordt verondersteld de weerspiegeling te zijn van het tweede besturingspunt van de vorige opdracht ten opzichte van het huidige punt. Als er geen vorige opdracht is of als de vorige opdracht geen kubieke Bézier-curveopdracht of een vloeiende kubieke Bézier-curveopdracht is, neem dan aan dat het eerste controlepunt samenvalt met het huidige punt. Het tweede besturingspunt, het besturingspunt voor het einde van de curve, wordt opgegeven door controlPoint2. S 100,200 200,300 is bijvoorbeeld een geldige vloeiende kubieke Bezier-curveopdracht.

Syntaxis
S controlPoint2endPoint

-of-

s controlPoint2endPoint
Termijn Beschrijving
controlPoint2 System.Windows.Point

Het besturingspunt van de curve, waarmee de eindtangens van de curve worden bepaald.
endPoint System.Windows.Point

Het punt waarop de curve wordt getekend.

Opdracht voor vloeiende kwadratische-Bezier-curve

Hiermee maakt u een kwadratische Bezier-curve tussen het huidige punt en het opgegeven eindpunt. Het besturingspunt wordt verondersteld de weerspiegeling te zijn van het besturingspunt van de vorige opdracht ten opzichte van het huidige punt. Als er geen vorige opdracht is of als de vorige opdracht geen kwadratische Bezier-curveopdracht of een vloeiende kwadratische Bezier-curveopdracht was, valt het besturingspunt samen met het huidige punt.

Syntaxis
T endPoint

- of -

t endPoint
Term Beschrijving
endPoint System.Windows.Point

Het punt waarop de curve wordt getekend.

Elliptische boogopdracht

Hiermee maakt u een elliptische boog tussen het huidige punt en het opgegeven eindpunt.

Syntaxis
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

-of-

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
Term Beschrijving
size System.Windows.Size

De x- en y-radius van de boog.
rotationAngle System.Double

De draaiing van de ellips, in graden.
isLargeArcFlag Ingesteld op 1 als de hoek van de boog 180 graden of hoger moet zijn; anders ingesteld op 0.
sweepDirectionFlag Ingesteld op 1 als de boog in een positieve hoekrichting wordt getekend; anders ingesteld op 0.
endPoint System.Windows.Point

Het punt waarop de boog wordt getekend.

De opdracht Sluiten

Hiermee wordt de huidige afbeelding beëindigd en wordt een lijn gemaakt waarmee het huidige punt wordt verbonden met het beginpunt van de afbeelding. Met deze opdracht maakt u een lijnverbinding (hoek) tussen het laatste segment en het eerste segment van de figuur.

Syntaxis
Z

-of-

z

Puntsyntaxis

Beschrijft de x- en y-coördinaten van een punt waar (0,0) de linkerbovenhoek is.

Syntaxis
x , y

- of -

x y
Term Beschrijving
x System.Double

De x-coördinaat van het punt.
y System.Double

De y-coördinaat van het punt.

Speciale waarden

In plaats van een standaard numerieke waarde kunt u ook de volgende speciale waarden gebruiken. Deze waarden zijn hoofdlettergevoelig.

Oneindigheid
Vertegenwoordigt Double.PositiveInfinity.

-Oneindigheid
Vertegenwoordigt Double.NegativeInfinity.

NaN
Vertegenwoordigt Double.NaN.

U kunt ook wetenschappelijke notatie gebruiken. +1.e17 is bijvoorbeeld een geldige waarde.

Zie ook