Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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épartou 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
xou 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
you 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 (controlPoint
1 et controlPoint
2).
C 100,200 200,400 300,200
est un exemple de commande de courbe valide.
Syntaxe |
---|
C
controlPoint 1controlPoint 2endPoint ou c
controlPoint 1controlPoint 2endPoint |
Terme | Descriptif |
---|---|
controlPoint 1 |
System.Windows.Point Premier point de contrôle de la courbe, qui détermine la tangente de départ de la courbe. |
controlPoint 2 |
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 controlPoint
2. Par exemple, S 100,200 200,300
est une commande valide de courbe de Bézier lisse.
Syntaxe |
---|
S
controlPoint 2endPoint ou s
controlPoint 2endPoint |
Terme | Descriptif |
---|---|
controlPoint 2 |
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
- Path
- StreamGeometry
- PathGeometry
- PathFigureCollection
- Vue d’ensemble des formes et dessins de base dans WPF
- Vue d’ensemble de la géométrie
- Sujets de type "comment faire"
.NET Desktop feedback