Syntaxe XAML pour les tracés

Les chemins d’accès sont abordés dans Les formes et le dessin de base dans WPF Overview et geometry Overview. Toutefois, cette rubrique décrit en détail le mini-langage puissant et complexe que vous pouvez utiliser pour spécifier des géométries de chemin plus compactes à l’aide du langage XAML (Extensible Application Markup Language).

Prérequis

Pour comprendre cette rubrique, vous devez être familiarisé avec les fonctionnalités de base des Geometry objets. Pour plus d’informations, consultez Vue d’ensemble de Geometry.

Mini langages StreamGeometry et PathFigureCollection

WPF fournit deux classes qui fournissent des mini-langages pour décrire des chemins géométriques : StreamGeometry et PathFigureCollection.

  • Vous utilisez le mini-langage lors de la StreamGeometry définition d’une propriété de type Geometry, telle que la Clip propriété d’un UIElement élément ou la Data propriété d’un Path élément. L’exemple suivant utilise la syntaxe d’attribut pour créer un StreamGeometry.

    <Path Stroke="Black" Fill="Gray"
          Data="M 10,100 C 10,300 300,-200 300,100" />
    
  • Vous utilisez la mini-langue lors de la PathFigureCollection définition de la Figures propriété d’un PathGeometry. L’exemple suivant utilise une syntaxe d’attribut pour créer un PathFigureCollection pour un PathGeometry.

    <Path Stroke="Black" Fill="Gray">
      <Path.Data>
        <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" />
      </Path.Data>
    </Path>
    

Comme vous pouvez le constater dans les exemples précédents, les deux mini langages sont très similaires. Il est toujours possible d’utiliser une PathGeometry situation dans laquelle vous pourriez utiliser un StreamGeometry; de sorte qu’il faut l’utiliser ? Utilisez une StreamGeometry fois que vous n’avez pas besoin de modifier le chemin après la création de celui-ci ; utilisez un PathGeometry si vous avez besoin de modifier le chemin d’accès.

Pour plus d’informations sur les différences entre les objets et StreamGeometry les PathGeometry objets, consultez la vue d’ensemble de la géométrie.

Remarque à propos des espaces blancs

Par souci de concision, un seul espace est indiqué dans les sections de syntaxe qui suivent, mais plusieurs espaces sont également acceptables partout où un seul espace est affiché.

Deux nombres n’ont pas besoin d’être séparés par une virgule ou un espace blanc, mais cela ne peut être fait que lorsque la chaîne résultante n’est pas ambiguë. Par exemple, 2..3 il s’agit en fait de deux nombres : « 2 ». Et . 3 ». De même, 2-3 est « 2 » et « -3 ». Les espaces ne sont pas requis avant ou après les commandes.

Syntaxe

La syntaxe d’utilisation de l’attribut XAML (Extensible Application Markup Language) pour une StreamGeometry est composée d’une valeur facultative FillRule et d’une ou plusieurs descriptions de figure.

Utilisation d’attribut XAML pour StreamGeometry
<objectproperty="[ fillRule] figureDescription[ figureDescription]* " ... />

La syntaxe d’utilisation de l’attribut XAML (Extensible Application Markup Language) pour une PathFigureCollection figure est composée d’une ou plusieurs descriptions de figure.

Utilisation d’attributs XAML pour PathFigureCollection
<="figureDescriptionpropriété object[ figureDescription]*" ... />
Terme Description
fillRule System.Windows.Media.FillRule

Spécifie si l’utilisation de l’objet StreamGeometryEvenOddNonzeroFillRuleou .

- F0 spécifie la règle de EvenOdd remplissage.
- F1 spécifie la règle de Nonzero remplissage.

Si vous omettez cette commande, le sous-chemin utilise le comportement par défaut, à savoir EvenOdd. Si vous spécifiez cette commande, vous devez la placer en premier.
figureDescription Une figure composée d’une commande move, de commandes draw et d’une commande close facultative.

moveCommand drawCommands [ closeCommand ]
moveCommand Une commande move qui spécifie le point de départ de la figure. Consultez la section Déplacer la commande .
drawCommands Une ou plusieurs commandes draw qui décrivent le contenu de la figure. Consultez la section Commandes de dessin.
closeCommand Une commande close facultative qui ferme la figure. Consultez la section Fermer la commande .

Commande move

Spécifie le point de départ d’une nouvelle figure.

Syntaxe
MstartPoint

- ou -

mstartPoint
Terme Description
startPoint System.Windows.Point

Le point de départ d’une nouvelle figure.

Un majuscule M indique qu’il startPoint s’agit d’une valeur absolue ; une minuscule m indique qu’il startPoint s’agit d’un décalage vers le point précédent, ou (0,0) si aucun n’existe. Si vous énumérez plusieurs points après la commande move, une ligne est tracée entre ces points, même si vous avez spécifié la commande line.

Commandes draw

Une commande draw peut se composer de plusieurs commandes shape. Les commandes shape suivantes sont disponibles : line, horizontal line, vertical line, cubic Bezier curve, quadratic Bezier curve, smooth cubic Bezier curve, smooth quadratic Bezier curve et elliptical arc.

Vous entrez chaque commande en utilisant une majuscule ou une minuscule : les majuscules indiquent des valeurs absolues et les minuscules indiquent des valeurs relatives : les points de contrôle pour ce segment sont relatifs au point de fin de l’exemple précédent. Lorsque vous entrez séquentiellement plusieurs commandes du même type, vous pouvez omettre l’entrée de commande en double ; par exemple, L 100,200 300,400 équivaut à L 100,200 L 300,400. Le tableau ci-dessous décrit les commandes move et draw.

Commande line

Crée une ligne droite entre le point actuel et le point de fin spécifié. l 20 30et L 20,30 sont des exemples de commandes de ligne valides.

Syntaxe
LendPoint

- ou -

lendPoint
Terme Description
endPoint System.Windows.Point

Extrémité de la ligne.

Un majuscule L indique qu’il endPoint s’agit d’une valeur absolue ; une minuscule l indique qu’il endPoint s’agit d’un décalage vers le point précédent, ou (0,0) si aucun n’existe.

Commande Horizontal Line

Crée une ligne horizontale entre le point actuel et la coordonnée x spécifiée. H 90 est un exemple de commande horizontal line valide.

Syntaxe
Hx

- ou -

hx
Terme Description
x System.Double

La coordonnée x du point de fin de la ligne.

Un majuscule H indique qu’il x s’agit d’une valeur absolue ; une minuscule h indique qu’il x s’agit d’un décalage vers le point précédent, ou (0,0) si aucun n’existe.

Commande Vertical Line

Crée une ligne verticale entre le point actuel et la coordonnée y spécifiée. v 90 est un exemple de commande vertical line valide.

Syntaxe
Vy

- ou -

vy
Terme Description
y System.Double

La coordonnée y du point de fin de la ligne.

Un majuscule V indique qu’il y s’agit d’une valeur absolue ; une minuscule v indique qu’il y s’agit d’un décalage vers le point précédent, ou (0,0) si aucun n’existe.

Commande Cubic Bezier Curve

Crée une courbe de Bezier cubique entre le point actuel et le point de terminaison spécifié à l’aide des deux points de contrôle spécifiés (controlPoint1 et controlPoint2). C 100,200 200,400 300,200 est un exemple de commande curve valide.

Syntaxe
CcontrolPoint1controlPoint2endPoint

- ou -

ccontrolPoint1controlPoint2endPoint
Terme Description
controlPoint1 System.Windows.Point

Le premier point de contrôle de la courbe, qui détermine la tangente de départ de la courbe.
controlPoint2 System.Windows.Point

Le deuxième point de contrôle de la courbe, qui détermine la tangente de fin de la courbe.
endPoint System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande Quadratic Bezier Curve

Crée une courbe de Bezier quadratique entre le point actuel et le point de terminaison spécifié à l’aide du point de contrôle spécifié (controlPoint). q 100,200 300,200 est un exemple de commande quadratic Bezier curve valide.

Syntaxe
Q controlPoint endPoint

- ou -

q controlPoint endPoint
Terme Description
controlPoint System.Windows.Point

Le point de contrôle de la courbe, qui détermine la tangente de départ et la tangente de fin de la courbe.
endPoint System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande Smooth cubic Bezier curve

Crée une courbe de Bézier cubique lissée entre le point actuel et le point de fin spécifié. Le premier point de contrôle est supposé être la réflexion du deuxième point de contrôle de la commande précédente par rapport au point actuel. S’il n’existe pas de commande précédente, ou si la commande précédente n’était pas une commande cubic Bezier curve ni une commande smooth cubic Bezier curve, imaginez que le premier point de contrôle coïncide avec le point actuel. Le deuxième point de contrôle, le point de contrôle pour la fin de la courbe, est spécifié par controlPoint2. Par exemple, S 100,200 200,300 il s’agit d’une commande de courbe bezier lisse valide.

Syntaxe
ScontrolPoint2endPoint

- ou -

scontrolPoint2endPoint
Terme Description
controlPoint2 System.Windows.Point

Le point de contrôle de la courbe, qui détermine la tangente de fin de la courbe.
endPoint System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande Smooth quadratic Bezier curve

Crée une courbe de Bézier quadratique lissée entre le point actuel et le point de fin spécifié. Le point de contrôle est supposé être la réflexion du point de contrôle de la commande précédente par rapport au point actuel. S’il n’existe pas de commande précédente, ou si la commande précédente n’était pas une commande quadratic Bezier curve ni une commande smooth quadratic Bezier curve, le point de contrôle coïncide avec le point actuel.

Syntaxe
T endPoint

- ou -

t endPoint
Terme Description
endPoint System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande Elliptical Arc

Crée un arc elliptique entre le point actuel et le point de fin spécifié.

Syntaxe
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

- ou -

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
Terme Description
size System.Windows.Size

Rayons X et Y de l’arc.
rotationAngle System.Double

La rotation de l’ellipse, en degrés.
isLargeArcFlag Défini sur 1 si l’angle de l’arc doit être de 180 degrés ou plus ; dans le cas contraire, défini sur 0.
sweepDirectionFlag Défini sur 1 si l’arc est dessiné dans une direction d’angle positif ; dans le cas contraire, défini sur 0.
endPoint System.Windows.Point

Point où l’arc est dessiné.

Commande close

Termine la figure actuelle et crée une ligne qui relie le point actuel au point de départ de la figure. Cette commande crée une jonction de ligne (angle) entre le dernier segment et le premier segment de la figure.

Syntaxe
Z

- ou -

z

Syntaxe de point

Décrit les coordonnées x et y d’un point où (0,0) est le coin supérieur gauche.

Syntaxe
x , y

- ou -

x y
Terme Description
x System.Double

Coordonnée X du point.
y System.Double

Coordonnée Y du point.

Valeurs spéciales

Plutôt que d’utiliser une valeur numérique standard, vous pouvez opter pour les valeurs spéciales suivantes. Ces valeurs sont sensibles à la casse.

Infinité
Représente Double.PositiveInfinity.

-Infini
Représente Double.NegativeInfinity.

NaN
Représente Double.NaN.

Vous pouvez également utiliser la notation scientifique. Par exemple, +1.e17 est une valeur valide.

Voir aussi