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).

Předpoklady

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
<objectproperty="[ 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
<objectproperty="figureDescription[ figureDescription]* " ... />
Období Popis
Fillrule System.Windows.Media.FillRule

Určuje, zda se StreamGeometry používá nebo EvenOddNonzeroFillRule.

- 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řít

moveCommand 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
MstartPoint

- nebo -

mstartPoint
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. 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 Následující tabulka popisuje příkazy pro přesunutí a kreslení .

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
LKoncový bod

- nebo -

lKoncový bod
Období Popis
Koncový bod 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
HX

- nebo -

hX
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
VY

- nebo -

vY
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ů (controlPoint1 a controlPoint2). C 100,200 200,400 300,200 je příkladem platného příkazu křivky.

Syntaxe
CcontrolPoint1controlPoint2endPoint

- nebo -

ccontrolPoint1controlPoint2endPoint
Období Popis
controlPoint1 System.Windows.Point

První kontrolní bod křivky, který určuje počáteční tangens křivky.
controlPoint2 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 controlPointhodnotou 2. Jedná se například S 100,200 200,300 o platný příkaz krychlové krychlové křivky Bezier.

Syntaxe
ScontrolPoint2endPoint

- nebo -

scontrolPoint2endPoint
Období Popis
controlPoint2 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é