Syntaxe značek cesty
Cesty jsou popsány v obrazcích a základním výkresu v přehledu WPF a přehled geometrie, ale toto téma podrobně popisuje výkonné a složité minijazyčné jazyky, které můžete použít k určení geometrie cest kompaktněji pomocí jazyka XAML (Extensible Application Markup Language).
Požadavky
Abyste pochopili toto téma, měli byste být obeznámeni se základními funkcemi Geometry objektů. Další informace najdete v přehledu geometrie.
Mini-jazyky StreamGeometry a PathFigureCollection
WPF poskytuje dvě třídy, které poskytují mini-jazyky pro popis geometrické cesty: StreamGeometry a PathFigureCollection.
Minijazyčný StreamGeometry jazyk se používá při nastavování vlastnosti typu Geometry, například Clip vlastnost UIElement prvku nebo Data jeho vlastnost Path . Následující příklad používá syntaxi atributu StreamGeometryk vytvoření .
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />
Při PathFigureCollection nastavování Figures vlastnosti objektu PathGeometry. Následující příklad používá syntaxi atributu PathFigureCollection k vytvoření pro .PathGeometry
<Path Stroke="Black" Fill="Gray"> <Path.Data> <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" /> </Path.Data> </Path>
Jak vidíte v předchozích příkladech, jsou dva minijazyčné jazyky velmi podobné. Vždy je možné použít PathGeometry v jakékoli situaci, kdy byste mohli použít ; StreamGeometrytak, který byste měli použít? StreamGeometry Použijte, když po vytvoření není potřeba upravit cestu. PoužijtePathGeometry, pokud potřebujete upravit cestu.
Další informace o rozdílech mezi PathGeometry objekty a StreamGeometry objekty naleznete v přehledu geometrie.
Poznámka o prázdném místě
Pro stručnost se v následujících oddílech syntaxe zobrazí jedna mezera, ale při zobrazení jediné mezery je přijatelné více mezer.
Dvě čísla nemusí být ve skutečnosti oddělena čárkou nebo prázdným znakem, ale to lze provést pouze v případě, že je výsledný řetězec jednoznačný. Například 2..3
jsou ve skutečnosti dvě čísla: "2" a ".3". 2-3
Podobně je "2" a "-3". Mezery nejsou nutné před příkazy ani za příkazy.
Syntaxe
Syntaxe použití atributu XAML (Extensible Application Markup Language) se StreamGeometry skládá z volitelné FillRule hodnoty a jednoho nebo více popisů obrázku.
Použití atributů XAML StreamGeometry |
---|
< objekt property =" [ fillRule ] figureDescription [ figureDescription ]*" ... /> |
Syntaxe použití atributu XAML (Extensible Application Markup Language) se PathFigureCollection skládá z jednoho nebo více popisů obrázku.
Použití atributu PathFigureCollection XAML |
---|
< objekt vlastnost =" figureDescription [ figureDescription ]*" ... /> |
Období | Popis |
---|---|
fillRule | System.Windows.Media.FillRule Určuje, zda se StreamGeometry používá nebo EvenOdd NonzeroFillRule. - F0 určuje EvenOdd pravidlo vyplnění.- F1 určuje Nonzero pravidlo vyplnění.Pokud tento příkaz vynecháte, použije dílčí cesta výchozí chování, což je EvenOdd. Pokud zadáte tento příkaz, musíte ho nejprve umístit. |
figureDescription | Obrázek složený z příkazu pro přesunutí, kreslení příkazů a volitelného příkazu zavřítmoveCommand drawCommands [ closeCommand ] |
moveCommand | Příkaz pro přesunutí, který určuje počáteční bod obrázku. Viz část Přesunout příkaz. |
drawCommands | Jeden nebo více příkazů kreslení, které popisují obsah obrázku. Viz část Příkazy kreslení. |
CloseCommand | Volitelný příkaz zavřít, který zavře obrázek. Viz část Zavřít příkaz. |
Přesunout příkaz
Určuje počáteční bod nového obrázku.
Syntaxe |
---|
M startPoint- nebo - m startPoint |
Období | Popis |
---|---|
startPoint | System.Windows.Point Počáteční bod nového obrázku |
Velká písmena M
označují absolutní startPoint
hodnotu; malá písmena m
označují, že startPoint
je posun k předchozímu bodu, nebo (0,0), pokud žádná neexistuje. Pokud za příkazem pro přesunutí vypíšete více bodů, na tyto body se nakreslí čára, i když jste zadali příkaz řádku.
Příkazy kreslení
Příkaz kreslení se může skládat z několika příkazů obrazce. K dispozici jsou následující příkazy obrazce: čára, vodorovná čára, svislá čára, krychlová bezierová křivka, kvadratická bezierová křivka, hladký krychlový bezierový oblouk, hladký kvadratický bezierový oblouk.
Každý příkaz zadáte pomocí velkého nebo malého písmena: velká písmena označují absolutní hodnoty a malá písmena označují relativní hodnoty: kontrolní body pro daný segment jsou relativní k koncovému bodu předchozího příkladu.
Tip
Při postupném zadávání více než jednoho příkazu stejného typu můžete vynechat duplicitní položku příkazu; Například L 100,200 300,400
je ekvivalentní .L 100,200 L 300,400
Příkaz řádku
Vytvoří přímku mezi aktuálním bodem a zadaným koncovým bodem. l 20 30
a L 20,30
jsou to příklady platných příkazů řádku .
Syntaxe |
---|
L zakončení- nebo - l zakončení |
Období | Popis |
---|---|
zakončení | System.Windows.Point Koncový bod čáry. |
Velká písmena L
označují absolutní endPoint
hodnotu; malá písmena l
označují, že endPoint
je posun k předchozímu bodu, nebo (0,0), pokud žádná neexistuje.
Příkaz vodorovného řádku
Vytvoří vodorovnou čáru mezi aktuálním bodem a zadanou souřadnicí x. H 90
je příkladem platného příkazu vodorovného řádku.
Syntaxe |
---|
H x- nebo - h x |
Období | Popis |
---|---|
x | System.Double Souřadnice x koncového bodu čáry. |
Velká písmena H
označují absolutní x
hodnotu; malá písmena h
označují, že x
je posun k předchozímu bodu, nebo (0,0), pokud žádná neexistuje.
Příkaz svislého řádku
Vytvoří svislou čáru mezi aktuálním bodem a zadanou souřadnicí y. v 90
je příkladem platného příkazu svislého řádku.
Syntaxe |
---|
V y- nebo - v y |
Období | Popis |
---|---|
y | System.Double Souřadnice y koncového bodu čáry. |
Velká písmena V
označují absolutní y
hodnotu; malá písmena v
označují, že y
je posun k předchozímu bodu, nebo (0,0), pokud žádná neexistuje.
Příkaz krychlové bezierovy křivky
Vytvoří krychlovou bezierovou křivku mezi aktuálním bodem a zadaným koncovým bodem pomocí dvou zadaných kontrolních bodů (controlPoint
1 a controlPoint
2). C 100,200 200,400 300,200
je příkladem platného příkazu křivky.
Syntaxe |
---|
C controlPoint 1controlPoint 2endPoint - nebo - c controlPoint 1controlPoint 2endPoint |
Období | Popis |
---|---|
controlPoint 1 |
System.Windows.Point První kontrolní bod křivky, který určuje počáteční tangens křivky. |
controlPoint 2 |
System.Windows.Point Druhý kontrolní bod křivky, který určuje koncovou tangens křivky. |
endPoint |
System.Windows.Point Bod, na který je křivka nakreslena. |
Příkaz kvadratické bezierovy křivky
Vytvoří kvadratickou bezierovou křivku mezi aktuálním bodem a zadaným koncovým bodem pomocí zadaného řídicího bodu (controlPoint
). q 100,200 300,200
je příkladem platného příkazu kvadratické křivky Bezier.
Syntaxe |
---|
Q controlPoint endPoint - nebo - q controlPoint endPoint |
Období | Popis |
---|---|
controlPoint |
System.Windows.Point Kontrolní bod křivky, který určuje počáteční a koncové tangensy křivky. |
endPoint |
System.Windows.Point Bod, na který je křivka nakreslena. |
Příkaz hladké krychlové bezierové křivky
Vytvoří krychlovou bezierovou křivku mezi aktuálním bodem a zadaným koncovým bodem. První řídicí bod se předpokládá jako odraz druhého řídicího bodu předchozího příkazu vzhledem k aktuálnímu bodu. Pokud neexistuje žádný předchozí příkaz nebo pokud předchozí příkaz nebyl krychlový příkaz bezierovy křivky nebo příkaz hladké krychlové Bezierovy křivky, předpokládejme, že první řídicí bod je shodný s aktuálním bodem. Druhý řídicí bod, řídicí bod pro konec křivky, je určen controlPoint
hodnotou 2. Jedná se například S 100,200 200,300
o platný příkaz krychlové krychlové křivky Bezier.
Syntaxe |
---|
S controlPoint 2endPoint - nebo - s controlPoint 2endPoint |
Období | Popis |
---|---|
controlPoint 2 |
System.Windows.Point Kontrolní bod křivky, který určuje koncovou tangens křivky. |
endPoint |
System.Windows.Point Bod, na který je křivka nakreslena. |
Příkaz hladké kvadratické křivky Bezier
Vytvoří kvadratickou bezierovou křivku mezi aktuálním bodem a zadaným koncovým bodem. Řídicí bod se předpokládá jako odraz řídicího bodu předchozího příkazu vzhledem k aktuálnímu bodu. Pokud neexistuje žádný předchozí příkaz nebo pokud předchozí příkaz nebyl příkaz kvadratické Bezierovy křivky nebo hladký kvadratický příkaz Bezierovy křivky, je řídicí bod shodný s aktuálním bodem.
Syntaxe |
---|
T endPoint - nebo - t endPoint |
Období | Popis |
---|---|
endPoint |
System.Windows.Point Bod, na který je křivka nakreslena. |
Příkaz Elliptical Arc
Vytvoří eliptický oblouk mezi aktuálním bodem a zadaným koncovým bodem.
Syntaxe |
---|
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint - nebo - a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint |
Období | Popis |
---|---|
size |
System.Windows.Size Poloměr x a y oblouku. |
rotationAngle |
System.Double Otočení tří teček ve stupních. |
isLargeArcFlag |
Nastavte na 1, pokud úhel oblouku by měl být 180 stupňů nebo větší; v opačném případě nastavte hodnotu 0. |
sweepDirectionFlag |
Nastavte na hodnotu 1, pokud je oblouk nakreslený ve směru kladného úhlu; v opačném případě nastavte hodnotu 0. |
endPoint |
System.Windows.Point Bod, na který je oblouk nakreslen. |
Příkaz Zavřít
Ukončí aktuální obrázek a vytvoří čáru, která spojuje aktuální bod s výchozím bodem obrázku. Tento příkaz vytvoří spojnicové spojení (roh) mezi posledním segmentem a prvním segmentem obrázku.
Syntaxe |
---|
Z - nebo - z |
Syntaxe bodu
Popisuje souřadnice x a y bodu, kde (0,0) je levý horní roh.
Syntaxe |
---|
x , y - nebo - x y |
Období | Popis |
---|---|
x |
System.Double Souřadnice x bodu. |
y |
System.Double Souřadnice bodu y. |
Speciální hodnoty
Místo standardní číselné hodnoty můžete také použít následující speciální hodnoty. U těchto hodnot se rozlišují malá a velká písmena.
Infinity
Představuje Double.PositiveInfinity.
-Nekonečno
Představuje Double.NegativeInfinity.
Není číslo
Představuje Double.NaN.
Můžete také použít vědecký zápis. Jedná se například +1.e17
o platnou hodnotu.
Viz také
.NET Desktop feedback