Sdílet prostřednictvím


Syntaxe značek cest

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 naleznete v přehledu geometrie.

StreamGeometry a PathFigureCollection Mini-Languages

WPF poskytuje dvě třídy, které poskytují mini-jazyky pro popis geometrické cesty: StreamGeometry a PathFigureCollection.

  • Minijazyk StreamGeometry se používá při nastavování vlastnosti typu Geometry, jako je například vlastnost Clip prvku UIElement nebo vlastnost Data prvku Path. Následující příklad používá syntaxi atributů k vytvoření StreamGeometry.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • Používáte PathFigureCollection mini-jazyk při nastavování vlastnosti Figures objektu PathGeometry. Následující příklad používá syntaxi atributu k vytvoření PathFigureCollection 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, kde byste mohli použít StreamGeometry. Tak 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". Podobně je 2-3 "2" a "-3". Před ani za příkazy nejsou nutné mezery.

Syntaxe

Syntaxe použití atributu XAML (Extensible Application Markup Language) pro StreamGeometry se skládá z volitelné FillRule hodnoty a jednoho nebo více popisů prvků.

Použití atributu StreamGeometry v XAML
< 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]* " ... />
termín Popis
fillRule System.Windows.Media.FillRule

Určuje, zda StreamGeometry používá EvenOdd nebo 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 tento příkaz zadáte, musíte ho umístit jako první.
figureDescription Obrázek složený z příkazu pro přesunutí, příkazů pro kreslení a volitelného příkazu pro zavření.

moveCommand drawCommands [ closeCommand ]
moveCommand Příkaz pro přesunutí, který určuje počáteční bod obrázku. Podívejte se na část Příkaz přesunutí.
drawCommands Jeden nebo více příkazů kreslení, které popisují obsah obrázku. Viz část Příkazy kreslení .
ZavřítPříkaz Volitelný příkaz pro zavření, který zavře obrázek/diagram. Viz část Zavřít příkaz .

Přesunout příkaz

Určuje počáteční bod nového obrázku.

Syntaxe
M počáteční bod

- nebo -

m počáteční bod
termín Popis
počátečníBod 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.

Návod

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říkazový řádek

Vytvoří přímku mezi aktuálním bodem a zadaným koncovým bodem. l 20 30 a L 20,30 jsou příklady platných příkazů řádků.

Syntaxe
L endPointu

- nebo -

l endPointu
termín Popis
koncového bodu 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
termín 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é čáry

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
termín 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 kubické 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
C controlPoint1controlPoint2endPoint

- nebo -

c controlPoint1controlPoint2endPoint
termín 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
termín 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é kubické Bézierovy 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 příkaz pro kubickou Bezierovu křivku či příkaz pro hladkou kubickou Bezierovu křivku, 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 hladké kubické křivky Bezier.

Syntaxe
S controlPoint2endPoint

- nebo -

s controlPoint2endPoint
termín 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 pro hladkou kvadratickou Bézierovu křivku

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
termín Popis
endPoint System.Windows.Point

Bod, na který je křivka nakreslena.

Příkaz eliptického oblouku

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
termín Popis
size System.Windows.Size

Poloměr x a y oblouku.
rotationAngle System.Double

Otočení elipsy 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
termín Popis
x System.Double

Souřadnice x tohoto 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.

Nekonečno představuje Double.PositiveInfinity.

-Nekonečno představuje Double.NegativeInfinity.

NaN Představuje Double.NaN.

Můžete také použít vědecký zápis. Jedná se například +1.e17 o platnou hodnotu.

Viz také