Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
.NET Desktop feedback