Megosztás a következőn keresztül:


Áthelyezési és rajzolási parancsok szintaxisa

Megismerheti az áthelyezési és rajzolási parancsokat (egy mininyelvet), amellyel XAML attribútumértékként megadhatja az elérési utak geometriáit. Az áthelyezési és rajzolási parancsokat számos tervező- és grafikus eszköz használja, amelyek vektorgrafikát vagy alakzatot adhatnak ki szerializálási és csereformátumként.

Áthelyezési és rajzolási parancssztringeket használó tulajdonságok

Az áthelyezési és rajzolási parancs szintaxisát az XAML belső típuskonvertere támogatja, amely elemzi a parancsokat, és futásidejű grafikus megjelenítést hoz létre. Ez a reprezentáció alapvetően a bemutatóra kész vektorok kész készlete. Maguk a vektorok nem fejezik be a bemutató részleteit; további értékeket is be kell állítania az elemeken. Az Elérési út objektumhoz a Kitöltés, a Körvonal és más tulajdonságok értékeire is szükség van, majd az elérési utat valahogy csatlakoztatni kell a vizualizációfához. PathIcon objektum esetén állítsa be az Előtér tulajdonságot.

A Windows futtatókörnyezetben két tulajdonság található, amelyek az áthelyezési és rajzolási parancsokat képviselő sztringet használhatják: Path.Data és PathIcon.Data. Ha az áthelyezési és rajzolási parancsok megadásával állítja be az egyik tulajdonságot, általában XAML attribútumértékként, valamint az elem egyéb szükséges attribútumaiként állítja be. A részletek megismerése nélkül a következőképpen néz ki:

<Path x:Name="Arrow" Fill="White" Height="11" Width="9.67"
  Data="M4.12,0 L9.67,5.47 L4.12,10.94 L0,10.88 L5.56,5.47 L0,0.06" />

Áthelyezési és rajzolási parancsok használata a PathGeometry használata helyett

Windows Runtime XAML esetén az áthelyezési és rajzolási parancsok létrehoznak egy PathGeometry objektumot egyetlen PathFigure objektummal , egy Figures tulajdonságértékkel. Minden egyes rajzparancs létrehoz egy PathSegment származtatott osztályt az PathFigure egyetlen Szegmentumok gyűjteményében, az áthelyezési parancs módosítja a StartPointot, és a bezáró parancs létezése IsClosed-et igaz értékre állítja. A struktúrát objektummodellként navigálhatja, ha futtatáskor megvizsgálja az Adat értékeit.

Az alapszintű szintaxis

Az áthelyezési és rajzparancsok szintaxisa a következőképpen foglalható össze:

  1. Kezdje egy választható kitöltési szabmánnyal. Ezt általában csak akkor adja meg, ha nem szeretné az EvenOdd alapértelmezett értékét. (További információ az EvenOddról később.)
  2. Adjon meg pontosan egy áthelyezési parancsot.
  3. Adjon meg egy vagy több rajzparancsot.
  4. Adjon meg egy bezárási parancsot. Kihagyhat egy lezáró parancsot, de ez nyitva hagyja az ábrát (ami nem gyakori).

A szintaxis általános szabályai a következők:

  • Minden parancsot pontosan egy betű jelöl.
  • Ez a betű lehet nagybetűs vagy kisbetűs. Az eset számít, ahogy ismertetjük.
  • A bezárási parancs kivételével minden parancsot általában egy vagy több szám követ.
  • Ha egy parancs egynél több számot tartalmaz, vesszővel vagy szóközzel elválasztva.

[fillRule]moveCommanddrawCommand[drawCommand*][closeCommand]

Sok rajzparancs használ pontokat, ahol x,y értéket ad meg. Valahányszor egy *ponthelyőrzőt lát, feltételezheti, hogy két tizedes értéket ad egy pont x,y értékére.

Ha az eredmény nem egyértelmű, a szabad terület gyakran kihagyható. Ha vesszőt használ az összes számcsoporthoz (mint amilyen a pontok és méretek), elhagyhatja az összes szóközt. Ez a használat például legális: F1M0,58L2,56L6,60L13,51L15,53L6,64z. Az egyértelműség kedvéért azonban jellemzőbb, hogy a parancsok között üres terület van.

Ne használjon vesszőt tizedesvesszőként a tizedes számokhoz; a parancssztringet az XAML értelmezi, és nem veszi figyelembe a kultúraspecifikus számformázási konvenciókat, amelyek eltérnek az en-us területi beállításban használtaktól.

Szintaxis részletei

Kitöltési szabály

Az opcionális kitöltési szabálynak két lehetséges értéke lehet: F0 vagy F1. (Az F mindig nagybetűs.) Az F0 az alapértelmezett érték; Az EvenOdd kitöltési viselkedést eredményez, ezért általában nem adja meg. A Nonzero kitöltési viselkedésének lekéréséhez használja az F1-et. Ezek a kitöltési értékek a FillRule enumerálás értékeihez igazodnak.

Áthelyezés parancs

Egy új ábra kezdőpontját adja meg.

Szemantika
M startPoint
-vagy-
m startPoint
Időszak Description
startPoint Pont
Egy új ábra kezdőpontja.

A nagybetűs M azt jelzi, hogy a startPoint abszolút koordináta; a kisbetűs m azt jelzi, hogy a startPoint az előző pont eltolása, vagy (0,0), ha nem volt előző pont.

Jegyzet Az áthelyezési parancs után legális több pontot megadni. A rendszer úgy rajzol egy vonalat ezekre a pontokra, mintha a sorparancsot adta volna meg. Ez azonban nem ajánlott stílus; használja helyette a dedikált sor parancsot.

Rajzolási parancsok

A rajzparancsok számos alakzatparancsból állhatnak: vonal, vízszintes vonal, függőleges vonal, köb alakú Bezier-görbe, quadratikus Bezier-görbe, sima köbös Bezier-görbe, sima kvadratikus Bezier-görbe és elliptikus ív.

Minden rajzparancs esetében fontos a kis- és nagybetűk használata. A nagybetűk az abszolút koordinátákat, a kisbetűk pedig az előző parancs koordinátáit jelölik.

A szegmensek vezérlőpontjai az előző szegmens végponthoz viszonyítottak. Ha egymás után több, azonos típusú parancsot ad meg, kihagyhatja az ismétlődő parancsbejegyzést. Például L 100,200 300,400 egyenértékű a L 100,200 L 300,400.

Sorparancs

Egyenes vonalat hoz létre az aktuális pont és a megadott végpont között. l 20 30 és L 20,30 példák az érvényes vonalparancsokra. Egy LineGeometry objektum megfelelőjét határozza meg.

Szemantika
L végpont
-vagy-
l végpont
Időszak Description
végpont Pont
A vonal végpontja.

Vízszintes sor parancs

Vízszintes vonalat hoz létre az aktuális pont és a megadott x-koordináta között. H 90 egy érvényes vízszintes sorparancs példája.

Szemantika
H x
-vagy-
h x
Időszak Description
x Double
A vonal végpontjának x koordinátája.

Függőleges sor parancs

Függőleges vonalat hoz létre az aktuális pont és a megadott y koordináta között. v 90 egy érvényes függőleges sorparancs példája.

Szemantika
V y
-vagy-
v y
Időszak Description
y Double
A vonal végpontjának y koordinátája.

Kubikus Bézier-görbe parancs

Egy köbBézier-görbét hoz létre az aktuális pont és a megadott végpont között a két megadott vezérlőpont (controlPoint1 és controlPoint2) használatával. C 100,200 200,400 300,200 példa egy érvényes görbeparancsra. A PathGeometry objektum megfelelőjét határozza meg egy BezierSegment objektummal.

Szemantika
C controlPoint1controlPoint2endPoint
-vagy-
c controlPoint1controlPoint2endPoint
Időszak Description
controlPoint1 Pont
A görbe első vezérlőpontja, amely meghatározza a görbe kezdő tangensét.
controlPoint2 Pont
A görbe második vezérlőpontja, amely meghatározza a görbe záró tangensét.
végpont Pont
Az a pont, amelyre a görbe rajzolva van.

Kvadratikus Bézier-görbe parancs

Quadratic Bézier-görbét hoz létre az aktuális pont és a megadott végpont között a megadott vezérlőpont (controlPoint) használatával. q 100,200 300,200 egy érvényes kvadratikus Bézier-görbeparancs. A PathGeometry és a QuadraticBezierSegment megfelelőjét határozza meg.

Szemantika
Q vezérlőpont végpont
-vagy-
q vezérlőPont végPont
Időszak Description
controlPoint Pont
A görbe vezérlőpontja, amely meghatározza a görbe kezdő és záró érintőit.
végpont Pont
Az a pont, amelyre a görbe rajzolva van.

Simított köbös Bézier-görbe parancs

Egy köbBézier-görbét hoz létre az aktuális pont és a megadott végpont között. Az első vezérlőpont az előző parancs második vezérlőpontjának tükrözése az aktuális ponthoz képest. Ha nincs előző parancs, vagy ha az előző parancs nem köbBézier-görbe vagy sima köbBézier-görbe parancs volt, feltételezzük, hogy az első vezérlőpont egybeesik az aktuális ponttal. A második vezérlőpontot – a görbe végének vezérlőpontját – a controlPoint2 határozza meg. Például S 100,200 200,300 egy érvényes sima köbBézier-görbe parancs. Ez a parancs a PathGeometry és a BezierSegment megfelelőjét határozza meg, ahol korábban görbeszegmens volt.

Szemantika
S controlPoint2endPoint
-vagy-
s controlPoint2 endPoint
Időszak Description
controlPoint2 Pont
A görbe vezérlőpontja, amely meghatározza a görbe záró tangensét.
végpont Pont
Az a pont, amelyre a görbe rajzolva van.

Sima kvadratikus Bézier-görbe parancs

Quadratikus Bézier-görbét hoz létre az aktuális pont és a megadott végpont között. A vezérlőpont az előző parancs vezérlőpontjának tükrözése az aktuális ponthoz képest. Ha nincs előző parancs, vagy ha az előző parancs nem kvadratikus Bézier-görbeparancs vagy sima kvadratikus Bézier-görbeparancs volt, a vezérlőpont egybeesik az aktuális ponttal. Ez a parancs a PathGeometry és a QuadraticBezierSegment megfelelőjét határozza meg, ahol az előző görbeszegmens volt.

Szemantika
T controlPointendPoint
-vagy-
t controlPointendPoint
Időszak Description
controlPoint Pont
A görbe vezérlőpontja, amely meghatározza a görbe kezdő és tangensét.
végpont Pont
Az a pont, amelyre a görbe rajzolva van.

Elliptikus ívparancs

Elliptikus ívet hoz létre az aktuális pont és a megadott végpont között. A PathGeometry és az ArcSegment megfelelőjét határozza meg.

Szemantika
A méretrotációAngleisLargeArcFlagsweepDirectionFlagendPoint
-vagy-
a méretrotációAngleisLargeArcFlagsweepDirectionFlagendPoint
Időszak Description
méret Méret
Az ív x sugara és y sugara.
forgásszög Double
Az ellipszis forgatása fokban.
isLargeArcFlag Állítsa 1 értékre, ha az ív szögének 180 fokkal vagy nagyobbnak kell lennie; ellenkező esetben állítsa be a 0 értéket.
sweepDirectionFlag Állítsa 1 értékre, ha az ív pozitív szögben van rajzolva; ellenkező esetben állítsa be a 0 értéket.
végpont Pont
Az a pont, ahová az ívet rajzolják.

Parancs bezárása

Véget vet az aktuális ábrának, és létrehoz egy vonalat, amely összeköti az aktuális pontot az ábra kezdőpontjával. Ez a parancs létrehoz egy sorillesztés (sarok) az utolsó szegmens és az ábra első szegmense között.

Szemantika
Z
-vagy-
z

Pontszintaxis

Egy pont x koordinátáját és y koordinátáját ismerteti. Lásd még Pont.

Szemantika
x,y
-vagy-
xy
Időszak Description
x Double
A pont x koordinátája.
y Double
A pont y koordinátája.

További megjegyzések

Standard numerikus érték helyett a következő speciális értékeket is használhatja. Ezek az értékek megkülönböztetik a kis- és nagybetűket.

  • Végtelen: A pozitívinfinitást jelöli.
  • -Infinity: A negatívinfinitást jelöli.
  • NaN: NaN-t jelöl.

Decimális vagy egész számok használata helyett használhat tudományos jelölést. Például +1.e17 érvényes érték.

Áthelyezési és rajzolási parancsokat előállító eszközök tervezése

A Microsoft Visual Studio 2015 Blend tolleszközének és más rajzeszközeinek használata általában egy Elérési út objektumot hoz létre áthelyezési és rajzparancsokkal.

Előfordulhat, hogy a meglévő áthelyezési és rajzolási parancsadatok megjelennek a Vezérlők Windows Runtime XAML alapértelmezett sablonjaiban meghatározott vezérlőrészekben. Egyes vezérlők például olyan PathIcont használnak, amelyben az adatok áthelyezési és rajzparancsként vannak definiálva.

Léteznek olyan exportőrök vagy beépülő modulok, amelyek más gyakran használt vektorgrafikus tervezőeszközökhöz is elérhetők, amelyek XAML formátumban tudják kihozni a vektort. Ezek általában Path-objektumokat hoznak létre egy elrendezési tartályban, a Path.Data áthelyezési és rajzolási parancsaival. Az XAML-ben több Útvonal elem is lehet, hogy különböző ecseteket lehessen alkalmazni. Sok ilyen exportőr vagy beépülő modul eredetileg a Windows Presentation Foundation (WPF) XAML-hez vagy Silverlighthoz készült, de az XAML elérési út szintaxisa megegyezik a Windows Runtime XAML-vel. Általában egy exportőrtől származó XAML-adattömböket használhat, és közvetlenül beillesztheti őket egy Windows Runtime XAML-oldalra. (A RadialGradientBrush azonban nem használható, ha az a konvertált XAML része volt, mert a Windows Runtime XAML nem támogatja ezt az ecsetet.)