Share via


Syntaxe XAML pour les tracés

Mise à jour : novembre 2007

Les tracés sont abordés dans les rubriques Vue d'ensemble des formes et dessins de base dans WPF et Vue d'ensemble de Geometry, mais la présente rubrique décrit en détail le mini-langage puissant et complexe que vous pouvez utiliser pour spécifier des géométries de tracés de manière plus compacte en XAML (Extensible Application Markup Language).  

Cette rubrique contient les sections suivantes.

Composants requis

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

Mini-langages StreamGeometry et PathFigureCollection

WPF inclut deux classes qui fournissent des mini-langages permettant de décrire des tracés géométriques : StreamGeometry et PathFigureCollection.

  • Vous utilisez le mini-langage StreamGeometry lorsque vous définissez une propriété du type Geometry, telle que la propriété Clip d'un UIElement ou la propriété Data d'un élément Path. 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 le mini-langage PathFigureCollection lorsque vous définissez la propriété Figures 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 le montrent les exemples précédents, les deux mini-langages sont très similaires. Dans tous les cas où pouvez utiliser un PathGeometry, vous pourriez également utiliser un StreamGeometry ; comment choisir ? Utilisez StreamGeometry lorsque vous n'avez pas besoin de modifier le tracé après l'avoir créé et PathGeometry dans le cas contraire.

Pour plus d'informations sur les différences entre les objets PathGeometry et StreamGeometry, consultez Vue d'ensemble de Geometry.

Remarque à propos de l'espace blanc

Pour abréger, un espace unique est représenté dans les sections de syntaxe qui suivent, mais plusieurs espaces seraient acceptables chaque fois qu'un espace figure.

En réalité, deux nombres n'ont pas besoin d'être séparés par une virgule ou un espace blanc mais cela peut s'avérer nécessaire si la chaîne résultante est ambiguë. Par exemple, 2..3 représente deux nombres : « 2. » et « .3 ». De même, 2-3 correspond à « 2 » et « -3 ». Les espaces ne sont pas non plus nécessaires avant ou après les commandes.

Syntaxe

La syntaxe d'utilisation des attributs XAML (Extensible Application Markup Language) pour un StreamGeometry se compose d'une valeur FillRule facultative et d'une ou de plusieurs descriptions de figure.

Utilisation des attributs XAML pour StreamGeometry

<propriétéd'object="[fillRule] figureDescription[figureDescription]*" ... />

La syntaxe d'utilisation des attributs XAML (Extensible Application Markup Language) pour un PathFigureCollection se compose d'une ou de plusieurs descriptions de figure.

Utilisation des attributs XAML pour PathFigureCollection

<propriétéd'objet="figureDescription[figureDescription]*" ... />

Terme

Description

fillRule

System.Windows.Media.FillRule

Spécifie si StreamGeometry utilise l'attribut EvenOdd ou NonzeroFillRule.

  • F0 spécifie la règle de remplissage EvenOdd.

  • F1 spécifie la règle de remplissage Nonzero.

Si vous omettez cette commande, le sous-tracé utilise le comportement par défaut, à savoir EvenOdd. Si vous spécifiez cette commande, vous devez la placer en premier.

figureDescription

Figure composée d'une commande de déplacement, de commandes de dessins et d'une commande facultative de fermeture.

moveCommanddrawCommands [closeCommand]

moveCommand

Commande de déplacement qui spécifie le point de départ de la figure. Consultez la section Commande de déplacement.

drawCommands

Une ou plusieurs commandes de dessin qui décrivent le contenu de la figure. Consultez la section Commandes de dessin.

closeCommand

Commande facultative qui ferme la figure. Consultez la section Commande de fermeture.

Commande de déplacement

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

Syntaxe

MstartPoint

- ou -

mstartPoint

Terme

Description

startPoint

System.Windows.Point

Point de départ d'une nouvelle figure.

Un M majuscule indique que startPoint est une valeur absolue ; un m minuscule indique que startPoint se situe à une distance relative par rapport au point précédent, ou (0,0) s'il n'en existe aucun. Si vous énumérez plusieurs points après la commande de déplacement (M), une ligne est tracée entre ces points bien que vous ayez spécifié la commande de ligne (L).

Commandes de dessin

Une commande de dessin peut consister en plusieurs commandes de forme. Les commandes de forme suivantes sont disponibles : ligne, ligne horizontale, ligne verticale, courbe de Bézier cubique, courbe de Bézier quadratique, courbe de Bézier lissée, courbe de Bézier quadratique lissée et arc elliptique.

Entrez chaque commande en commençant soit par une majuscule soit par une minuscule : les majuscules indiquent des valeurs absolues et les minuscules des valeurs relatives : les points de contrôle du segment en question s'entendent par rapport au point de terminaison de l'exemple précédent. Lorsque vous entrez plusieurs commandes du même type à la suite, vous pouvez omettre l'entrée de commandes en double ; par exemple, L 100,200 300,400 équivaut à L 100,200 L 300,400. Le tableau suivant décrit les commandes move et draw.

Commande de ligne

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

Syntaxe

LendPoint

- ou -

lendPoint

Terme

Description

endPoint

System.Windows.Point

Point de terminaison de la ligne.

Commande de ligne horizontale

Crée une ligne horizontale entre le point actuel et le point de coordonnées x spécifié. H 90 est un exemple de commande de ligne horizontale correcte.

Syntaxe

H x

- ou -

h x

Terme

Description

x

System.Double

Coordonnée x du point de terminaison de la ligne.

Commande de ligne verticale

Crée une ligne verticale entre le point actuel et le point de coordonnées y spécifié. v 90 est un exemple de commande de ligne horizontale correcte.

Syntaxe

V y

- ou -

v y

Terme

Description

y

System.Double

Coordonnée y du point de terminaison de la ligne.

Commande de courbe de Bézier cubique

Crée une courbe de Bézier cubique entre le point actuel et le point de terminaison spécifié en utilisant les deux points de contrôle spécifiés (controlPoint1 et controlPoint2). C 100,200 200,400 300,200 est un exemple de commande de courbe correcte.

Syntaxe

C controlPoint1 controlPoint2 endPoint

- ou -

c controlPoint1 controlPoint2 endPoint

Terme

Description

controlPoint1

System.Windows.Point

Premier point de contrôle de la courbe, qui détermine la tangente de début de la courbe.

controlPoint2

System.Windows.Point

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 de courbe de Bézier quadratique

Crée une courbe de Bézier quadratique entre le point actuel et le point de terminaison spécifié en utilisant les deux points de contrôle spécifiés (controlPoint). q 100,200 300,200 est un exemple de commande de courbe de Bézier quadratique correcte.

Syntaxe

Q controlPoint endPoint

- ou -

q controlPoint endPoint

Terme

Description

controlPoint

System.Windows.Point

Point de contrôle de la courbe, qui détermine les tangentes de début et de fin de la courbe.

endPoint

System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande de courbe de Bézier cubique lissée

Crée une courbe de Bézier cubique entre le point actuel et le point de terminaison spécifié. Le premier point de contrôle est par défaut la réflexion du deuxième point de contrôle de la commande précédente par rapport au point actuel. S'il n'y avait pas de commande précédente, ou si la commande précédente n'était pas une commande de courbe de Bézier cubique ou de courbe de Bézier cubique lissée, le premier point de contrôle coïncide par défaut avec le point actuel. Le deuxième point de contrôle de la courbe, à savoir le point de contrôle de fin de la courbe, est spécifié par controlPoint2. Par exemple, S 100,200 200,300 est une commande de courbe de Bézier cubique lissée correcte.

Syntaxe

S controlPoint2 endPoint

- ou -

s controlPoint2 endPoint

Terme

Description

controlPoint2

System.Windows.Point

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 de courbe de Bézier quadratique lissée

Crée une courbe de Bézier quadratique entre le point actuel et le point de terminaison spécifié. Le point de contrôle est par défaut la réflexion du point de contrôle de la commande précédente par rapport au point actuel. S'il n'y avait pas de commande précédente, ou si la commande précédente n'était pas une commande de courbe de Bézier quadratique ou de courbe de Bézier quadratique lissée, le premier point de contrôle coïncide par défaut avec le point actuel.

Syntaxe

T controlPoint endPoint

- ou -

t controlPoint endPoint

Terme

Description

controlPoint

System.Windows.Point

Point de contrôle de la courbe, qui détermine le début et la tangente de la courbe.

endPoint

System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande d'arc elliptique

Crée un arc elliptique entre le point actuel et le point de terminaison 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

Rotation de l'ellipse, en degrés.

isLargeArcFlag

A la valeur 1 si l'angle de l'arc doit être égal ou supérieur à 180 degrés, sinon a la valeur 0.

sweepDirectionFlag

A la valeur 1 si l'arc est dessiné en direction d'un angle positif, sinon a la valeur 0.

endPoint

System.Windows.Point

Point vers lequel l'arc est dessiné.

Commande de fermeture

Termine la figure en cours 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 (un angle) entre le dernier et le premier segment de la figure.

Syntaxe

Z

- ou -

z

Syntaxe de point

Spécifie les coordonnées x et y d'un point.

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

Au lieu d'une valeur numérique standard, vous pouvez utiliser les valeurs spéciales ci-dessous. Ces valeurs ne respectent pas la casse.

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

Voir aussi

Concepts

Vue d'ensemble des formes et dessins de base dans WPF

Vue d'ensemble de Geometry

Référence

Path

StreamGeometry

PathGeometry

PathFigureCollection

Autres ressources

Rubriques Comment relatives aux objets Geometry

Exemples de géométries

Exemples de formes