Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las rutas de acceso se describen en Formas y dibujo básico en información general de WPF y la información general sobre geometría; sin embargo, en este tema se describe detalladamente el mini-lenguaje eficaz y complejo que puede usar para especificar geometrías de ruta de acceso de forma más compacta mediante el Lenguaje de marcado extensible de aplicaciones (XAML).
Prerrequisitos
Para comprender este tema, debe estar familiarizado con las características básicas de Geometry los objetos. Para obtener más información, consulte Información general sobre geometría.
StreamGeometry y PathFigureCollection Mini-Languages
WPF proporciona dos clases que proporcionan mini lenguajes para describir rutas geométricas: StreamGeometry y PathFigureCollection.
Usas el mini lenguaje StreamGeometry al establecer una propiedad de tipo Geometry, como la propiedad Clip de un UIElement o la propiedad Data de un elemento Path. En el ejemplo siguiente se usa la sintaxis de atributo para crear un StreamGeometry.
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />
Usas el mini-language PathFigureCollection al establecer la propiedad Figures de un PathGeometry. En el ejemplo siguiente se usa una sintaxis de atributo para crear un PathFigureCollection para .PathGeometry
<Path Stroke="Black" Fill="Gray"> <Path.Data> <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" /> </Path.Data> </Path>
Como puede ver en los ejemplos anteriores, los dos mini idiomas son muy similares. Siempre es posible usar un PathGeometry en cualquier situación en la que se podría usar un StreamGeometry; entonces, ¿cuál debería usar? Use un StreamGeometry cuando no necesite modificar la ruta de acceso después de crearla; use un PathGeometry si necesita modificar la ruta de acceso.
Para obtener más información sobre las diferencias entre los objetos PathGeometry y StreamGeometry, consulte la Información general sobre Geometría.
Una nota sobre el espacio en blanco
Por motivos de brevedad, se muestra un solo espacio en las secciones de sintaxis siguientes, pero también se admiten varios espacios siempre que se muestre un solo espacio.
En realidad, dos números no tienen que estar separados por una coma o un espacio en blanco, pero esto solo se puede hacer cuando la cadena resultante es inequívoca. Por ejemplo, 2..3
es realmente dos números: "2". Y ".3". Del mismo modo, 2-3
es "2" y "-3". Los espacios no son necesarios antes o después de los comandos, tampoco.
Sintaxis
La sintaxis de uso de atributos de Lenguaje de marcado extensible de aplicaciones (XAML) para un StreamGeometry objeto se compone de un valor opcional FillRule y una o varias descripciones de figura.
Uso de atributos XAML de StreamGeometry |
---|
<
objectproperty=" [ fillRule ] figureDescription [ figureDescription ]* " ... /> |
La sintaxis de uso de atributos de Lenguaje de marcado extensible de aplicaciones (XAML) para un PathFigureCollection objeto se compone de una o varias descripciones de ilustración.
Uso de atributos XAML de PathFigureCollection |
---|
<
="
figureDescription [ figureDescription ]*" ... /> |
Término | Descripción |
---|---|
fillRule | System.Windows.Media.FillRule Especifica si usa StreamGeometry o EvenOddNonzeroFillRule. - F0 especifica la regla de EvenOdd relleno.- F1 especifica la regla de Nonzero relleno.Si omite este comando, la subruta usa el comportamiento predeterminado, que es EvenOdd. Si especifica este comando, debe colocarlo primero. |
figureDescription | figura compuesta por un comando de movimiento, comandos de dibujo, y un comando de cierre opcional.moveCommand
drawCommands
[
closeCommand
]
|
moveCommand | Comando move que especifica el punto inicial de la figura. Consulte la sección Comando de movimiento. |
drawCommands | Uno o varios comandos de dibujo que describen el contenido de la figura. Consulte la sección Comandos de Draw . |
cerrarComando | Comando close opcional que cierra la figura. Consulte la sección Close Command (Cerrar comando ). |
Comando Move
Especifica el punto de inicio de una nueva figura.
Sintaxis |
---|
M
puntoDeInicio- o - m
puntoDeInicio |
Término | Descripción |
---|---|
puntoDeInicio | System.Windows.Point Punto inicial de una nueva figura. |
Un mayúscula M
indica que startPoint
es un valor absoluto; un minúscula m
indica que startPoint
es un desplazamiento al punto anterior o (0,0) si no existe ninguno. Si enumera varios puntos después del mandato "move", se dibuja una línea hacia esos puntos a pesar de que usted había especificado el mandato "linea".
Comandos de Dibujo
Un comando draw puede constar de varios comandos de forma. Los siguientes comandos de forma están disponibles: línea, línea horizontal, línea vertical, curva bezier cúbica, curva Bezier cuadrática, curva bezier cúbica suave, curva bezier cuadrática suave y arco elíptico.
Escriba cada comando mediante una letra mayúscula o minúscula: las letras mayúsculas denotan valores absolutos y letras minúsculas indican valores relativos: los puntos de control de ese segmento son relativos al punto final del ejemplo anterior.
Sugerencia
Al escribir secuencialmente más de un comando del mismo tipo, puede omitir la entrada de comando duplicado; por ejemplo, L 100,200 300,400
es equivalente a L 100,200 L 300,400
.
Comando de línea
Crea una línea recta entre el punto actual y el punto final especificado.
l 20 30
y L 20,30
son ejemplos de comandos de línea válidos.
Sintaxis |
---|
L
punto final- o - l
punto final |
Término | Descripción |
---|---|
punto final de |
System.Windows.Point Punto final de la línea. |
Un mayúscula L
indica que endPoint
es un valor absoluto; un minúscula l
indica que endPoint
es un desplazamiento al punto anterior o (0,0) si no existe ninguno.
Comando de línea horizontal
Crea una línea horizontal entre el punto actual y la coordenada x especificada.
H 90
es un ejemplo de un comando de línea horizontal válido.
Sintaxis |
---|
H
x- o - h
x |
Término | Descripción |
---|---|
x | System.Double Coordenada x del punto final de la línea. |
Un mayúscula H
indica que x
es un valor absoluto; un minúscula h
indica que x
es un desplazamiento al punto anterior o (0,0) si no existe ninguno.
Comando de línea vertical
Crea una línea vertical entre el punto actual y la coordenada Y especificada.
v 90
es un ejemplo de un comando de línea vertical válido.
Sintaxis |
---|
V
y- o - v
y |
Término | Descripción |
---|---|
y | System.Double Coordenada y del punto final de la línea. |
Un mayúscula V
indica que y
es un valor absoluto; un minúscula v
indica que y
es un desplazamiento al punto anterior o (0,0) si no existe ninguno.
Comando de curva cúbica de Bézier
Crea una curva Bezier cúbica entre el punto actual y el punto final especificado mediante los dos puntos de control especificados (controlPoint
1 y controlPoint
2).
C 100,200 200,400 300,200
es un ejemplo de un comando de curva válido.
Sintaxis |
---|
C
controlPoint 1controlPoint 2endPoint - o - c
controlPoint 1controlPoint 2endPoint |
Término | Descripción |
---|---|
controlPoint 1 |
System.Windows.Point Primer punto de control de la curva, que determina la tangente inicial de la curva. |
controlPoint 2 |
System.Windows.Point Segundo punto de control de la curva, que determina la tangente final de la curva. |
endPoint |
System.Windows.Point Punto al que se dibuja la curva. |
Comando de curva Bezier cuadrática
Crea una curva Bezier cuadrática entre el punto actual y el punto final especificado mediante el punto de control especificado (controlPoint
).
q 100,200 300,200
es un ejemplo de un comando de curva Bezier cuadrático válido.
Sintaxis |
---|
Q
controlPoint
endPoint
- o - q
controlPoint
endPoint
|
Término | Descripción |
---|---|
controlPoint |
System.Windows.Point Punto de control de la curva, que determina las tangentes iniciales y finales de la curva. |
endPoint |
System.Windows.Point Punto al que se dibuja la curva. |
Comando de curva Bézier cúbica suave
Crea una curva Bezier cúbica entre el punto actual y el punto final especificado. Se supone que el primer punto de control es la reflexión del segundo punto de control del comando anterior con respecto al punto actual. Si no hay ningún comando anterior o si el comando anterior no era un comando de curva bezier cúbica o un comando de curva bezier cúbica suave, suponga que el primer punto de control coincide con el punto actual. El segundo punto de control, el punto de control para el final de la curva, se especifica en controlPoint
2. Por ejemplo, S 100,200 200,300
es un comando de curva Bezier cúbica suave válida.
Sintaxis |
---|
S
controlPoint 2endPoint - o - s
controlPoint 2endPoint |
Término | Descripción |
---|---|
controlPoint 2 |
System.Windows.Point Punto de control de la curva, que determina la tangente final de la curva. |
endPoint |
System.Windows.Point Punto al que se dibuja la curva. |
Comando de curva Bezier cuadrática suave
Crea una curva Bezier cuadrática entre el punto actual y el punto final especificado. Se supone que el punto de control es la reflexión del punto de control del comando anterior con respecto al punto actual. Si no hay ningún comando anterior o si el comando anterior no era un comando de curva Bezier cuadrática o un comando de curva Bezier cuadrática suave, el punto de control coincide con el punto actual.
Sintaxis |
---|
T
endPoint
- o - t
endPoint
|
Término | Descripción |
---|---|
endPoint |
System.Windows.Point Punto al que se dibuja la curva. |
Comando de Arco elíptico
Crea un arco elíptico entre el punto actual y el punto final especificado.
Sintaxis |
---|
A
size
rotationAngle
isLargeArcFlag
sweepDirectionFlag
endPoint
- o - a
size
rotationAngle
isLargeArcFlag
sweepDirectionFlag
endPoint
|
Término | Descripción |
---|---|
size |
System.Windows.Size Radio x e y del arco. |
rotationAngle |
System.Double Rotación de la elipse, en grados. |
isLargeArcFlag |
Establézcalo en 1 si el ángulo del arco debe ser de 180 grados o superior; De lo contrario, establezca en 0. |
sweepDirectionFlag |
Establézcalo en 1 si el arco se dibuja en una dirección angular positiva; De lo contrario, establezca en 0. |
endPoint |
System.Windows.Point Punto hacia el cual se traza el arco. |
Comando Cerrar
Finaliza la ilustración actual y crea una línea que conecta el punto actual al punto inicial de la ilustración. Este comando crea una unión de línea entre el último segmento y el primer segmento de la figura.
Sintaxis |
---|
Z - o - z |
Sintaxis de punto
Describe las coordenadas x e y de un punto donde (0,0) es la esquina superior izquierda.
Sintaxis |
---|
x
,
y
- o - x
y
|
Término | Descripción |
---|---|
x |
System.Double Coordenada x del punto. |
y |
System.Double Coordenada y del punto. |
Valores especiales
En lugar de un valor numérico estándar, también puede usar los siguientes valores especiales. Estos valores distinguen mayúsculas de minúsculas.
La Infinity representa Double.PositiveInfinity.
El símbolo -Infinity representa Double.NegativeInfinity.
NaN representa Double.NaN.
También puede usar notación científica. Por ejemplo, +1.e17
es un valor válido.
Consulte también
.NET Desktop feedback