Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přečtěte si o příkazech pro přesunutí a kreslení (minijazyčné), které můžete použít k určení geometrie cest jako hodnoty atributu XAML. Příkazy pro přesunutí a kreslení používají mnoho nástrojů pro návrh a grafiku, které můžou vypsat vektorovou grafiku nebo obrazec jako serializační a zaměnitelný formát.
Vlastnosti, které používají řetězce příkazů pro přesunutí a kreslení
Syntaxe příkazů pro přesunutí a kreslení je podporována interním převaděčem typů pro XAML, který analyzuje příkazy a vytváří reprezentaci grafiky za běhu. Tato reprezentace je v podstatě hotová sada vektorů, která je připravená k prezentaci. Samotné vektory nedokončí podrobnosti prezentace; Stále budete muset nastavit další hodnoty prvků. U objektu Path potřebujete také hodnoty pro Výplň, Tah a další vlastnosti, a poté musí být tento Path nějak propojen s vizuálním stromem. Pro PathIcon objekt, nastavte Foreground vlastnost.
V prostředí Windows Runtime existují dvě vlastnosti, které mohou použít řetězec představující příkazy pro přesunutí a kreslení: Path.Data a PathIcon.Data. Pokud nastavíte jednu z těchto vlastností zadáním příkazů pro přesunutí a kreslení, obvykle je nastavíte jako hodnotu atributu XAML spolu s dalšími požadovanými atributy tohoto prvku. Aniž byste se museli zabývat konkrétními informacemi, vypadá to takto:
<Path x:Name="Arrow" Fill="White" Height="11" Width="9.67"
Data="M4.12,0 L9.67,5.47 L4.12,10.94 L0,10.88 L5.56,5.47 L0,0.06" />
Použití příkazů pro přesunutí a kreslení versus použití PathGeometry
Příkazy pro přesunutí a kreslení v prostředí Windows Runtime vytvoří PathGeometry s jedním objektem PathFigure s hodnotou vlastnosti Figures . Každý příkaz 'draw' vytvoří odvozenou třídu PathSegment v kolekci PathFigureSegments, příkaz 'move' změní StartPoint a existence příkazu 'close' nastaví IsClosed na true. Tuto strukturu můžete procházet jako objektový model, pokud prozkoumáte hodnoty dat za běhu.
Základní syntaxe
Syntaxi příkazů pro přesunutí a kreslení je možné shrnout takto:
- Začněte volitelným pravidlem vyplnění. Obvykle to zadáte jenom v případě, že nechcete, aby byl evenOdd výchozí. (Další informace o EvenOdd později.)
- Zadejte přesně jeden příkaz pro přesunutí.
- Zadejte jeden nebo více příkazů kreslení.
- Zadejte příkaz zavřít. Příkaz zavřít můžete vynechat, ale tím by zůstal váš obrázek otevřený (to je neobvyklé).
Obecná pravidla této syntaxe jsou:
- Každý příkaz je reprezentován přesně jedním písmenem.
- Toto písmeno může být velké nebo malé. Záleží na tom, jak budeme popisovat.
- Každý příkaz s výjimkou příkazu close je obvykle následovaný jedním nebo více čísly.
- Pokud je pro příkaz více než jedno číslo, oddělte je čárkou nebo mezerou.
[fillRule]moveCommanddrawCommand[drawCommand*][closeCommand]
Mnoho příkazů kreslení používá body, kde zadáte hodnotu x,y . Kdykoli uvidíte zástupný symbol *bodů , můžete předpokládat, že dáváte dvě desetinné hodnoty pro hodnotu x,y bodu.
Prázdné znaky je často možné vynechat, pokud není výsledek nejednoznačný. Ve skutečnosti můžete vynechat všechny prázdné znaky, pokud použijete čárky jako oddělovač pro všechny číselné sady (například body a velikost). Toto použití je například legální: F1M0,58L2,56L6,60L13,51L15,53L6,64z. Ale je typičtější zahrnout mezery mezi příkazy pro lepší přehlednost.
Nepoužívejte čárky jako desetinnou čárku pro desetinná čísla; řetězec příkazu je zpracován v XAML a nebere ohled na kulturně specifické konvence formátování čísel, které se liší od těch použitých v národním prostředí en-us.
Specifika syntaxe
Vyplnit pravidlo
Pro volitelné pravidlo vyplnění existují dvě možné hodnoty: F0 nebo F1. (Písmeno F je vždy velké.) F0 je výchozí hodnota; vytváří chování výplně EvenOdd, takže ho obvykle nezadáváte. Pomocí klávesy F1 získáte chování nenulové výplně. Tyto hodnoty výplně odpovídají hodnotám výčtu FillRule .
Přesunout příkaz
Určuje počáteční bod nového obrázku.
| Syntaxe |
|---|
M
startPoint - nebo - m
startPoint |
| Term | Description |
|---|---|
| startPoint |
Bod Počáteční bod nového obrázku |
Velké písmeno M označuje, že startPoint je absolutní souřadnice; Malá písmena m označuje, že počáteční bod je posunem k předchozímu bodu, nebo (0,0), pokud neexistuje žádný předchozí bod.
Poznámka Je legální zadat několik bodů po příkazu pro přesunutí. Na tyto body se nakreslí čára, jako kdybyste zadali příkaz řádku. To však není doporučený styl; místo toho použijte příkaz vyhrazeného řádku.
Kreslení příkazů
Příkaz kreslení se může skládat z několika příkazů obrazce: čára, vodorovná čára, svislá čára, kubická Bezierova křivka, kvadratická Bezierova křivka, hladká kubická Bezierova křivka, hladká kvadratická Bezierova křivka a eliptický oblouk.
Pro všechny příkazy kreslení záleží na případu. Velká písmena označují absolutní souřadnice a malá písmena označují souřadnice vzhledem k předchozímu příkazu.
Řídicí body pro segment jsou relativní ke koncovému bodu předchozího segmentu. 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 řádky
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. Definuje ekvivalent objektu LineGeometry .
| Syntaxe |
|---|
L
koncový bod - nebo - l
koncový bod |
| Term | Description |
|---|---|
| koncový bod |
Bod Koncový bod čáry. |
Příkaz Vodorovná čára
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 | Description |
|---|---|
| x |
Double Souřadnice x koncového bodu čáry. |
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 | Description |
|---|---|
| y |
Dvojitý Souřadnice osy y koncového bodu čáry. |
Příkaz krychlové Bézierovy křivky
Vytvoří krychlovou bézierovou 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. Definuje ekvivalent objektu PathGeometry s objektem BezierSegment.
| Syntaxe |
|---|
C
controlPoint1controlPoint2endPoint - nebo - c
controlPoint1controlPoint2endPoint |
| Term | Description |
|---|---|
| controlPoint1 |
Bod První kontrolní bod křivky, který určuje počáteční tangens křivky. |
| controlPoint2 |
Bod Druhý kontrolní bod křivky, který určuje koncovou tangens křivky. |
| koncový bod |
Bod Bod, na který je křivka nakreslena. |
Kvadratický příkaz Bézierovy křivky
Vytvoří kvadratickou Bézierovou 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 kvadratického příkazu Bézierovy křivky. Definuje ekvivalent PathGeometry s QuadraticBezierSegment.
| Syntaxe |
|---|
Q
controlPoint endPoint - nebo - q
controlPoint endPoint |
| Term | Description |
|---|---|
| controlPoint |
Bod Kontrolní bod křivky, který určuje počáteční a koncové tangensy křivky. |
| koncový bod |
Bod Bod, na který je křivka nakreslena. |
Příkaz hladké kubické Bézierovy křivky
Vytvoří krychlovou bézierovou 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ým příkazem Bézierovy křivky nebo příkazem hladké krychlové Bézierovy 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 ovládacím bodem 2. Jedná se například o platný příkaz kubické Bézierovy křivky S 100,200 200,300. Tento příkaz definuje ekvivalent PathGeometry s BezierSegment, kde předtím byl segment křivky.
| Syntaxe |
|---|
S
controlPoint2endPoint - nebo - s
controlPoint2 endPoint |
| Term | Description |
|---|---|
| controlPoint2 |
Bod Kontrolní bod křivky, který určuje koncovou tangens křivky. |
| koncový bod |
Bod Bod, na který je křivka nakreslena. |
Příkaz k hladké kvadratické Bézierově křivce
Vytvoří kvadratickou bézierovou 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 kvadratický příkaz Bézierovy křivky nebo hladký kvadratický příkaz Bézierovy křivky, je řídicí bod shodný s aktuálním bodem. Tento příkaz definuje ekvivalent PathGeometry s quadraticBezierSegment , kde byl předchozí segment křivky.
| Syntaxe |
|---|
T
controlPointendPoint - nebo - t
controlPointendPoint |
| Term | Description |
|---|---|
| controlPoint |
Bod Kontrolní bod křivky, který určuje začátek a tangens křivky. |
| koncový bod |
Bod 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. Definuje ekvivalentu PathGeometry s ArcSegment.
| Syntaxe |
|---|
A
sizerotationAngleisLargeArcFlagsweepDirectionFlagendPoint -nebo- a
sizerotationAngleisLargeArcFlagsweepDirectionFlagendPoint |
| Term | Description |
|---|---|
| velikost |
Velikost Poloměry x a y oblouku. |
| rotationAngle |
Dvojitý 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. |
| koncový bod |
Bod Bod, na který je oblouk nakreslen. |
Zavřít příkaz
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 bodů
Popisuje souřadnici x a souřadnici y bodu. Viz také Point.
| Syntaxe |
|---|
|
x,y -nebo- xy |
| Term | Description |
|---|---|
| x |
Dvojitý Souřadnice x bodu. |
| y |
Dvojitý Souřadnice bodu y. |
Další poznámky
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 positiveInfinity.
- -Nekonečno: Představuje NegativeInfinity.
- NaN: Představuje naN.
Místo použití desetinných míst nebo celých čísel můžete použít vědecký zápis. Jedná se například +1.e17 o platnou hodnotu.
Nástroje pro návrh, které vytvářejí příkazy pro přesunutí a kreslení
Použití nástroje Pero a dalších nástrojů kreslení v Blendu pro Microsoft Visual Studio 2015 obvykle vytvoří objekt Path s příkazy pro přesunutí a kreslení.
V některých částech ovládacích prvků definovaných ve výchozích šablonách XAML prostředí Windows Runtime pro ovládací prvky se můžou zobrazit existující data příkazů pro přesunutí a kreslení. Některé ovládací prvky například používají PathIcon s daty definovanými jako příkazy pro přesunutí a kreslení.
Existují vývozci, moduly plug-in pro další běžně používané nástroje pro návrh vektorové grafiky, které mohou vytvořit výstup ve formě XAML. Obvykle se vytvářejí objekty Path v rozvrhovém kontejneru s příkazy pro kreslení a přesunutí pro Path.Data. V XAML může být více elementů Path , aby bylo možné použít různé štětce. Mnohé z těchto exportérů nebo modulů plug-in byly původně napsány pro WINDOWS Presentation Foundation (WPF) XAML nebo Silverlight, ale syntaxe cesty XAML je shodná se systémem Windows Runtime XAML. Obvykle můžete použít bloky XAML od vývozce a vložit je přímo na stránku XAML prostředí Windows Runtime. (Pokud byl ale součástí převedeného XAML, nebudete ale moct použít RadialGradientBrush, protože xaml prostředí Windows Runtime tento štětce nepodporuje.)
Související témata
Windows developer