Vous êtes sur la page 1sur 10

Syntaxe XAML pour les tracés

Article • 18/10/2023

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.

XAML

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

XAML

<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

< =" figureDescription proprié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

M startPoint

- ou -

m startPoint

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 30 et L

20,30 sont des exemples de commandes de ligne valides.

Syntaxe

L endPoint

- ou -

l endPoint

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 ( controlPoint 1 et
controlPoint 2). C 100,200 200,400 300,200 est un exemple de commande curve

valide.

Syntaxe

C controlPoint 1 controlPoint 2 endPoint

- ou -

c controlPoint 1 controlPoint 2 endPoint

Terme Description

controlPoint 1 System.Windows.Point

Le premier point de contrôle de la courbe, qui détermine la tangente de départ


de la courbe.

controlPoint 2 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 controlPoint 2. Par exemple, S
100,200 200,300 il s’agit d’une commande de courbe bezier lisse valide.

Syntaxe

S controlPoint 2 endPoint

- ou -

s controlPoint 2 endPoint

Terme Description

controlPoint 2 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.
Terme Description

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

- ou -

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
Path
StreamGeometry
PathGeometry
PathFigureCollection
Vue d’ensemble des formes et dessins de base dans WPF
Vue d’ensemble de Geometry
Guides pratiques

6 Collaborer avec nous sur .NET Desktop feedback


GitHub The .NET Desktop documentation is
La source de ce contenu se open source. Provide feedback here.
trouve sur GitHub, où vous
pouvez également créer et  Ouvrir un problème de
examiner les problèmes et les documentation
demandes de tirage. Pour plus
d’informations, consultez notre  Indiquer des commentaires sur
guide du contributeur. le produit

Vous aimerez peut-être aussi