Partager via


Syntaxe de balisage de chemin d’accès

Les chemins sont abordés dans Formes et dessin de base dans WPF - Vue d'ensemble et Vue d'ensemble de la géométrie. Toutefois, ce thème décrit en détail le puissant et complexe mini-langage que vous pouvez utiliser pour spécifier des géométries de chemin plus compactes grâce à XAML (Extensible Application Markup Language).

Conditions préalables

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

StreamGeometry et PathFigureCollection Mini-Languages

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 voir dans les exemples précédents, les deux mini-langues sont très similaires. Il est toujours possible d’utiliser un PathGeometry dans n'importe quelle situation où vous pourriez utiliser un StreamGeometry; alors lequel devriez-vous 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 PathGeometry et les objets StreamGeometry, consultez la Vue d’ensemble de la géométrie.

Remarque sur l’espace blanc

Par souci de concision, un espace unique est affiché dans les sections de syntaxe qui suivent, mais plusieurs espaces sont également acceptables partout où un espace unique 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 obligatoires 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 des attributs StreamGeometry XAML
< 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 de l’attribut XAML PathFigureCollection
< =" figureDescription[ figureDescription]*" ... />
Terme Descriptif
fillRule System.Windows.Media.FillRule

Spécifie si StreamGeometry utilise 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-chemin 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 move, de commandes de dessin et d’une commande de fermeture facultative.

moveCommand drawCommands [ closeCommand ]
moveCommand 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 de dessin qui décrivent le contenu de la figure. Consultez la section Commandes de dessin .
closeCommand Commande de fermeture facultative qui ferme le diagramme. Consultez la section Fermer la commande .

Déplacer la commande

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

Syntaxe
M pointDeDépart

ou

m pointDeDépart
Terme Descriptif
pointDeDépart System.Windows.Point

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 répertoriez plusieurs points après la commande de déplacement, une ligne est tracée vers ces points, même si vous avez spécifié la commande de ligne.

Commandes de dessin

Une commande de dessin peut se composer de 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 cubique lisse, courbe de Bézier quadratique lisse et arc elliptique.

Vous entrez chaque commande à l’aide d’une majuscule ou d’une lettre minuscule : les lettres majuscules indiquent des valeurs absolues et des lettres minuscules indiquent les valeurs relatives : les points de contrôle de ce segment sont relatifs au point de terminaison de l’exemple précédent.

Conseil / Astuce

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.

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 de ligne valides.

Syntaxe
L extrémité

ou

l extrémité
Terme Descriptif
point de terminaison System.Windows.Point

Point de fin 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 Ligne horizontale

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

Syntaxe
H x

ou

h x
Terme Descriptif
x System.Double

Coordonnée x du point de terminaison 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 Ligne Verticale

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

Syntaxe
V y

ou

v y
Terme Descriptif
y System.Double

Coordonnée y du point de terminaison 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 Courbe de Bézier cubique

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 de courbe valide.

Syntaxe
C controlPoint1controlPoint2endPoint

ou

c controlPoint1controlPoint2endPoint
Terme Descriptif
controlPoint1 System.Windows.Point

Premier point de contrôle de la courbe, qui détermine la tangente de départ 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 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 valide de courbe de Bezier quadratique.

Syntaxe
Q controlPoint endPoint

ou

q controlPoint endPoint
Terme Descriptif
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 lisse

Crée une courbe bezier cubique entre le point actuel et le point de terminaison 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. Si aucune commande précédente n’existe ou si la commande précédente n’était pas une courbe Bézier cubique ou une courbe Bézier cubique lisse, supposons 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 de la fin de la courbe, est spécifié par controlPoint2. Par exemple, S 100,200 200,300 est une commande valide de courbe de Bézier lisse.

Syntaxe
S controlPoint2endPoint

ou

s controlPoint2endPoint
Terme Descriptif
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 lisse

Crée une courbe de Bezier quadratique entre le point actuel et le point de terminaison 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 aucune commande précédente ou si la commande précédente n’était pas une commande de courbe de Bezier quadratique ou une commande de courbe quadratique lisse, le point de contrôle coïncide avec le point actuel.

Syntaxe
T endPoint

ou

t endPoint
Terme Descriptif
endPoint System.Windows.Point

Point vers lequel la courbe est dessinée.

Commande 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 Descriptif
size System.Windows.Size

Rayon x et y de l’arc.
rotationAngle System.Double

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 supérieur ; sinon, affectez la valeur 0.
sweepDirectionFlag Défini sur 1 si l’arc est dessiné dans une direction d’angle positif ; sinon, affectez la valeur 0.
endPoint System.Windows.Point

Point vers lequel l’arc est dessiné.

Commande Close

Termine la figure actuelle et crée une ligne qui connecte le point actuel au point de départ de la figure. Cette commande crée une jointure 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 Descriptif
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 également utiliser les valeurs spéciales suivantes. Ces valeurs sont sensibles à la casse.

Infini représente Double.PositiveInfinity.

L'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