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


Útvonaljelölő szintaxis

Az útvonalakat a WPF áttekintésében és a geometria áttekintésében az Alakzatok és az Alaprajz területen tárgyaljuk, de ez a témakör részletesen ismerteti azt a hatékony és összetett mininyelvet, a pályák geometriáit, amelyek az XAML (Extensible Application Markup Language, XAML) használatával tömörebben határozhatók meg.

Előfeltételek

A témakör megértéséhez ismernie kell az objektumok alapvető jellemzőit Geometry . További információ: Geometria áttekintése.

StreamGeometry és PathFigureCollection Mini-Languages

A WPF két olyan osztályt biztosít, amelyek mininyelveket biztosítanak a geometriai útvonalak leírásához: StreamGeometry és PathFigureCollection.

  • A mininyelvet StreamGeometry a típustulajdonságok Geometry( például egy Clip elem tulajdonsága vagy UIElement egy elem tulajdonsága DataPath) beállításakor használja. Az alábbi példa attribútumszintaxissal hoz létre egy StreamGeometry.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • A mininyelvet használja PathFigureCollection egy Figures tulajdonság PathGeometrybeállításakor. Az alábbi példa egy attribútumszintaxis használatával hoz létre egy PathFigureCollection .PathGeometry

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

Ahogy az előző példákból is látható, a két mininyelv nagyon hasonló. Mindig lehet használni egy PathGeometry olyan helyzetben, ahol használhatja a StreamGeometry; így melyiket kell használnia? Használjon olyankor StreamGeometry , amikor a létrehozás után nem kell módosítania az elérési utat; ha módosítania kell az elérési utat, használjon egy PathGeometry értéket.

További információkért a PathGeometry és StreamGeometry objektumok közötti különbségekről, tekintse meg a Geometria áttekintése című témakört.

Megjegyzés a szabad területről

A rövidség kedvéért egyetlen szóköz jelenik meg a következő szintaxisszakaszokban, de több szóköz is elfogadható, ha egyetlen szóköz jelenik meg.

Két számot valójában nem kell vesszővel vagy fehér szóközzel elválasztani, de ez csak akkor lehetséges, ha az eredményül kapott sztring egyértelmű. Például 2..3 valójában két szám: "2". És ".3". Hasonlóképpen a 2-3 "2" és "-3". A szóközök parancsok előtt és után sem szükségesek.

Szemantika

Az XAML (Extensible Application Markup Language, XAML) attribútum használati szintaxisa egy választható StreamGeometry értékből és egy vagy több ábraleírásból áll.

StreamGeometry XAML attribútumhasználat
< objectproperty="[ fillRule] figureDescription[ figureDescription]* " ... />

Az Extensible Application Markup Language (XAML) attribútumhasználati szintaxisa egy PathFigureCollection elem esetén egy vagy több ábraleírásból áll.

PathFigureCollection XAML attribútumhasználat
< objectproperty="figureDescription[ figureDescription]* " ... />
Időszak Leírás
fillRule System.Windows.Media.FillRule

Meghatározza, hogy a StreamGeometry használja-e a EvenOdd-t vagy a NonzeroFillRule-t.

- F0 a kitöltési szabályt EvenOdd adja meg.
- F1 a kitöltési szabályt Nonzero adja meg.

Ha kihagyja ezt a parancsot, a segédút az alapértelmezett viselkedést használja, amely az EvenOdd. Ha megadja ezt a parancsot, elsőként kell megadnia.
figureDescription Egy áthelyezési parancsból, rajzparancsokból és opcionális bezárási parancsból álló ábra.

moveCommand drawCommands [ closeCommand ]
moveCommand Az alakzat kezdőpontját meghatározó áthelyezési parancs. Lásd az Áthelyezés parancs című szakaszt .
drawCommands Egy vagy több rajzparancs, amely leírja az ábra tartalmát. Lásd a Rajzparancsok szakaszt .
BezárásParancs Egy nem kötelező bezárási parancs, amely bezárja az ábrát. Lásd a Bezárás parancs szakaszt.

Áthelyezés parancs

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

Szemantika
M kezdőpont

-vagy-

m kezdőpont
Időszak Leírás
kiindulópont- System.Windows.Point

Egy új ábra kezdőpontja.

A nagybetűk M azt jelzik, hogy startPoint abszolút érték; a kisbetű m azt jelzi, hogy startPoint az előző pont eltolása, vagy (0,0) ha nincs ilyen. Ha az áthelyezési parancs után több pontot is listáz, a rendszer sorokat rajzol ezekre a pontokra, bár megadta a sorparancsot.

Rajzolási parancsok

A rajzparancsok több alakzatparancsból állhatnak. A következő alakzatparancsok érhetők el: 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 ellipszisív.

Az egyes parancsokat nagybetűvel vagy kisbetűvel adhatja meg: a nagybetűk az abszolút értékeket, a kisbetűk pedig a relatív értékeket jelölik: az adott szegmens vezérlőpontjai az előző példa végponthoz viszonyítottak.

Jótanács

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.

Parancssor

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 .

Szemantika
L végpont

-vagy-

l végpont
Időszak Leírás
végpont System.Windows.Point

A vonal végpontja.

A nagybetűk L azt jelzik, hogy endPoint abszolút érték; a kisbetű l azt jelzi, hogy endPoint az előző pont eltolása, vagy (0,0) ha nincs ilyen.

Vízszintes vonal 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 Leírás
x System.Double

A vonal végpontjának x koordinátája.

A nagybetűk H azt jelzik, hogy x abszolút érték; a kisbetű h azt jelzi, hogy x az előző pont eltolása, vagy (0,0) ha nincs ilyen.

Függőleges vonal 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 Leírás
y System.Double

A vonal végpontjának y koordinátája.

A nagybetűk V azt jelzik, hogy y abszolút érték; a kisbetű v azt jelzi, hogy y az előző pont eltolása, vagy (0,0) ha nincs ilyen.

Cubic Bezier Curve Parancs

A két megadott vezérlőpont (controlPoint1 és 2) használatával létrehoz egy köb alakú Bezier-görbét az aktuális pont és controlPointa megadott végpont között. C 100,200 200,400 300,200 egy érvényes görbeparancs példája.

Szemantika
C controlPoint1controlPoint2endPoint

-vagy-

c controlPoint1controlPoint2endPoint
Időszak Leírás
controlPoint1 System.Windows.Point

A görbe első vezérlőpontja, amely meghatározza a görbe kezdő tangensét.
controlPoint2 System.Windows.Point

A görbe második vezérlőpontja, amely meghatározza a görbe záró tangensét.
endPoint System.Windows.Point

Az a pont, amelyre a görbe rajzolva van.

Másodfokú Bézier-görbe parancs

Az aktuális pont és a megadott végpont között négyszög alakú Bezier-görbét hoz létre a megadott vezérlőpont ()controlPoint használatával. q 100,200 300,200 egy érvényes kvadratikus Bezier-görbe parancs példája.

Szemantika
Q controlPoint endPoint

-vagy-

q controlPoint endPoint
Időszak Leírás
controlPoint System.Windows.Point

A görbe vezérlőpontja, amely meghatározza a görbe kezdő és záró érintőit.
endPoint System.Windows.Point

Az a pont, amelyre a görbe rajzolva van.

Simított köbös Bezier-görbe parancs

Egy köb alakú Bezier-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öb alakú Bezier-görbe vagy sima köb alakú Bezier-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 controlPointa 2 határozza meg. Például S 100,200 200,300 egy érvényes sima köb alakú Bezier-görbe parancs.

Szemantika
S controlPoint2endPoint

-vagy-

s controlPoint2endPoint
Időszak Leírás
controlPoint2 System.Windows.Point

A görbe vezérlőpontja, amely meghatározza a görbe záró tangensét.
endPoint System.Windows.Point

Az a pont, amelyre a görbe rajzolva van.

Bezier-görbe simító kvadratikus parancs

Quadratikus Bezier-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 Bezier-görbeparancs vagy sima kvadratikus Bezier-görbe parancs volt, a vezérlőpont egybeesik az aktuális ponttal.

Szemantika
T endPoint

-vagy-

t endPoint
Időszak Leírás
endPoint System.Windows.Point

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.

Szemantika
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

-vagy-

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
Időszak Leírás
size System.Windows.Size

Az ív x- és y-sugara.
rotationAngle System.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.
endPoint System.Windows.Point

Az a pont, ahová az ívet rajzolják.

A Bezárás parancs

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 és y koordinátáit írja le, ahol a (0,0) a bal felső sarokban található.

Szemantika
x , y

-vagy-

x y
Időszak Leírás
x System.Double

A pont x koordinátája.
y System.Double

A pont y koordinátája.

Speciális értékek

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.

A Végtelen jelenti Double.PositiveInfinity.

-Infinity képviseli Double.NegativeInfinity.

A NaN a Double.NaN képviseli.

Tudományos jelölést is használhat. A +1.e17 például érvényes érték.

Lásd még