Dela via


Sökvägsmarkeringssyntax

Sökvägar beskrivs i Shapes and Basic Drawing in WPF Overview and the Geometry Overview, men det här avsnittet beskriver i detalj det kraftfulla och komplexa minispråk som du kan använda för att ange sökvägsgeometrier mer kompakt med hjälp av XAML (Extensible Application Markup Language).

Förutsättningar

För att förstå det här avsnittet bör du känna till de grundläggande funktionerna i Geometry objekt. För mer information, se översikt över geometri.

StreamGeometry och PathFigureCollection Mini-Languages

WPF innehåller två klasser som tillhandahåller minispråk för att beskriva geometriska sökvägar: StreamGeometry och PathFigureCollection.

  • Du använder StreamGeometry minispråk när du anger en egenskap av typen Geometry, till exempel egenskapen Clip för en UIElement eller egenskapen Data för ett Path element. I följande exempel används attributsyntax för att skapa en StreamGeometry.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • Du använder PathFigureCollection minispråk när du anger egenskapen Figures för en PathGeometry. I följande exempel används en attributsyntax för att skapa en PathFigureCollection för en PathGeometry.

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

Som du ser i föregående exempel är de två minispråken mycket lika. Det är alltid möjligt att använda en PathGeometry i alla situationer där du kan använda en StreamGeometry; så vilken ska du använda? Använd en StreamGeometry när du inte behöver ändra sökvägen när du har skapat den. använd en PathGeometry om du behöver ändra sökvägen.

Mer information om skillnaderna mellan PathGeometry- och StreamGeometry-objekt finns i geometriöversikt.

En anteckning om tomt utrymme

För korthet visas ett enda blanksteg i syntaxavsnitten som följer, men flera blanksteg är också acceptabla där ett enda blanksteg visas.

Två tal behöver faktiskt inte avgränsas med kommatecken eller blanksteg, men detta kan bara göras när den resulterande strängen är entydig. Till exempel är 2..3 faktiskt två tal: "2." och ".3". På samma sätt är 2-3 "2" och "-3". Mellanslag krävs inte heller före eller efter kommandon.

Syntax

XAML-attributanvändningssyntaxen (Extensible Application Markup Language) för en StreamGeometry består av ett valfritt FillRule-värde och en eller flera bildbeskrivningar.

StreamGeometry XAML-attributanvändning
< objektegenskap="[ fillRule] figureDescription[ figureDescription]* " ... />

XAML-attributanvändningssyntaxen (Extensible Application Markup Language) för en PathFigureCollection består av en eller flera bildbeskrivningar.

PathFigureCollection XAML-attributanvändning
< objektegenskap="figureDescription[ figureDescription]* " ... />
Begrepp Beskrivning
fillRegel System.Windows.Media.FillRule

Anger om StreamGeometry använder EvenOdd eller NonzeroFillRule.

- F0 anger fyllningsregeln EvenOdd.
- F1 anger Nonzero fyllningsregel.

Om du utelämnar det här kommandot använder undersökvägen standardbeteendet EvenOdd. Om du anger det här kommandot måste du placera det först.
figurbeskrivning En figur som består av ett förflyttningskommando, rita-kommandon och ett valfritt stängningskommando.

moveCommand drawCommands [ closeCommand ]
moveCommand Ett flytta-kommando som anger bildens startpunkt. Se avsnittet Flyttkommando.
drawCommands Ett eller flera ritkommandon som beskriver figurens innehåll. Se avsnittet Ritkommandon.
closeCommand Ett valfritt stängningskommando som stänger figuren. Se avsnittet Stäng kommando.

Flytta kommando

Anger startpunkten för en ny figur.

Syntax
M startpunkt

-eller-

m startPunkt
Term Beskrivning
startpunkt System.Windows.Point

Startpunkten för en ny figur.

En versal M anger att startPoint är ett absolut värde. En gemen m anger att startPoint är en förskjutning från föregående punkt, eller (0,0) om ingen finns. Om du listar flera punkter efter flyttkommandot ritas en rad till dessa punkter trots att du har angett radkommandot.

Ritkommandon

Ett dragningskommando kan bestå av flera formkommandon. Följande formkommandon är tillgängliga: linje, vågrät linje, lodrät linje, kubisk Bezier-kurva, kvadratisk Bezier-kurva, jämn kubisk Bezier-kurva, jämn kvadratisk Bezier-kurva och elliptisk båge.

Du anger varje kommando med antingen versaler eller gemener: versaler anger absoluta värden och gemener som anger relativa värden: kontrollpunkterna för det segmentet är relativa till slutpunkten i föregående exempel.

Tips

När du sekventiellt anger mer än ett kommando av samma typ kan du utelämna den duplicerade kommandoposten. L 100,200 300,400 motsvarar till exempel L 100,200 L 300,400.

Radkommando

Skapar en rät linje mellan den aktuella punkten och den angivna slutpunkten. l 20 30 och L 20,30 är exempel på giltiga radkommandon.

Syntax
L endPoint

-eller-

l slutpunkt
Term Beskrivning
endPoint- System.Windows.Point

Radens slutpunkt.

En versal L anger att endPoint är ett absolut värde; en gemen l anger att endPoint är en förskjutning till föregående punkt, eller (0,0) om ingen finns.

Kommando för vågrät linje

Skapar en vågrät linje mellan den aktuella punkten och den angivna x-koordinaten. H 90 är ett exempel på ett giltigt vågrätt linjekommando.

Syntax
H x

-eller-

h x
Term Beskrivning
x System.Double

X-koordinaten för radens slutpunkt.

En versal H anger att x är ett absolut värde; en gemen h anger att x är en förskjutning till föregående punkt, eller (0,0) om ingen finns.

Kommando för lodrät linje

Skapar en lodrät linje mellan den aktuella punkten och den angivna y-koordinaten. v 90 är ett exempel på ett giltigt lodrätt linjekommando.

Syntax
V y

-eller-

v y
Term Beskrivning
y System.Double

Y-koordinaten för radens slutpunkt.

En versal V indikerar att y är ett absolut värde; en gemen v indikerar att y är en förskjutning till föregående punkt, eller (0,0) om ingen finns.

Kubik Bezier Curve-kommando

Skapar en kubisk Bezier-kurva mellan den aktuella punkten och den angivna slutpunkten med hjälp av de två angivna kontrollpunkterna (controlPoint1 och controlPoint2). C 100,200 200,400 300,200 är ett exempel på ett giltigt kurvkommando.

Syntax
C controlPoint1controlPoint2endPoint

-eller-

c controlPoint1controlPoint2endPoint
Begrepp Beskrivning
controlPoint1 System.Windows.Point

Den första kontrollpunkten i kurvan, som bestämmer kurvans start tangens.
controlPoint2 System.Windows.Point

Kurvans andra kontrollpunkt, som bestämmer kurvans slut tangens.
endPoint System.Windows.Point

Den punkt som kurvan ritas till.

Kvadratisk Bézierkurvkommando

Skapar en kvadratisk Bezier-kurva mellan den aktuella punkten och den angivna slutpunkten med hjälp av den angivna kontrollpunkten (controlPoint). q 100,200 300,200 är ett exempel på ett giltigt kvadratiskt Bezier-kurvkommando.

Syntax
Q controlPoint endPoint

-eller-

q controlPoint endPoint
Termin Beskrivning
controlPoint System.Windows.Point

Kurvans kontrollpunkt, som bestämmer kurvans start- och slut tangenser.
endPoint System.Windows.Point

Den punkt som kurvan ritas till.

Kommandot jämn kubisk Bézier-kurva

Skapar en kubisk Bezier-kurva mellan den aktuella punkten och den angivna slutpunkten. Den första kontrollpunkten antas vara återspeglingen av den andra kontrollpunkten i föregående kommando i förhållande till den aktuella punkten. Om det inte finns något tidigare kommando eller om det tidigare kommandot inte var ett kubiskt Bezierkurvakommando eller ett mjukt kubiskt Bezierkurvakommando, antar man att den första kontrollpunkten överensstämmer med den aktuella punkten. Den andra kontrollpunkten, kontrollpunkten för slutet av kurvan, anges av controlPoint2. Till exempel är S 100,200 200,300 ett giltigt kommando för en jämn kubisk Bezier-kurva.

Syntax
S controlPoint2endPoint

-eller-

s controlPoint2endPoint
Termin Beskrivning
controlPoint2 System.Windows.Point

Kurvans kontrollpunkt, som avgör kurvans slut tangens.
endPoint System.Windows.Point

Den punkt som kurvan ritas till.

Kommandot för jämn kvadratisk Bèzierkurva

Skapar en kvadratisk Bezier-kurva mellan den aktuella punkten och den angivna slutpunkten. Kontrollpunkten antas vara en återspegling av kontrollpunkten för föregående kommando i förhållande till den aktuella punkten. Om det inte finns något tidigare kommando eller om föregående kommando inte var ett kvadratisk Bezier-kurvkommando eller ett smidigt kvadratisk Bezier-kurvkommando, sammanfaller kontrollpunkten med den aktuella punkten.

Syntax
T endPoint

-eller-

t endPoint
Term Beskrivning
endPoint System.Windows.Point

Den punkt som kurvan ritas till.

Elliptisk bågekommando

Skapar en elliptisk båge mellan den aktuella punkten och den angivna slutpunkten.

Syntax
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

-eller-

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

Bågens x- och y-radie.
rotationAngle System.Double

Rotationen av ellipsen, i grader.
isLargeArcFlag Ange till 1 om bågens vinkel ska vara 180 grader eller högre. annars anger du till 0.
sweepDirectionFlag Sätt till 1 om bågen ritas i positiv vinkelriktning; annars sätt till 0.
endPoint System.Windows.Point

Den punkt till vilken bågen ritas.

Kommandot Stänga

Avslutar den aktuella figuren och skapar en linje som ansluter den aktuella punkten till bildens startpunkt. Det här kommandot skapar en radkoppling (hörn) mellan det sista segmentet och det första segmentet i figuren.

Syntax
Z

-eller-

z

Punktsyntax

Beskriver x- och y-koordinaterna för en punkt där (0,0) är det övre vänstra hörnet.

Syntax
x , y

-eller-

x y
Villkor Beskrivning
x System.Double

Punktens x-koordinat.
y System.Double

Punktens y-koordinat.

Specialvärden

I stället för ett numeriskt standardvärde kan du också använda följande specialvärden. Dessa värden är skiftlägeskänsliga.

Oändlighet
Representerar Double.PositiveInfinity.

-Oändlighet
Representerar Double.NegativeInfinity.

NaN
Representerar Double.NaN.

Du kan också använda vetenskaplig notation. Till exempel är +1.e17 ett giltigt värde.

Se även