Point Estructura

Definición

Representa los valores de coordenada x e y que definen un punto en un plano bidimensional.

public value class Point
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
struct Point
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
public struct Point
var point = {
x : /* Your value */,
y : /* Your value */
}
Public Structure Point
<object property="X,Y"/>
-or
<object property="X Y"/>
Herencia
Point
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (se introdujo en la versión v1.0)

Comentarios

Un valor Point a veces representa un espacio de coordenadas en el plano de la ventana principal de una aplicación, pero hay otras interpretaciones posibles de valores point que pueden variar, dependiendo de la propiedad que usa el valor Point.

Javascript: En JavaScript, point es un objeto con dos propiedades de datos: x e y. Aparte de x e y, la API restante que se muestra aquí en las listas de miembros point (o que se muestran en la tabla de contenido) no se aplica a la programación de JavaScript.

Notas sobre la sintaxis XAML

Los valores de punto se usan ampliamente para propiedades de gráficos y propiedades similares relacionadas con la interfaz de usuario en todo el vocabulario XAML para Windows Runtime aplicaciones.

Se puede usar un espacio o una coma como delimitador entre los valores X e Y . La convención común para los puntos de coordenadas es usar un delimitador de comas.

Las estructuras de punto no se pueden declarar como recursos en resourceDictionary. Una posible solución alternativa consiste en usar un recurso x:String y, a continuación, insertarlo en una cadena que se analiza con XamlReader.Load.

Algunos usos de XAML usan el tipo Point para representar un punto lógico. Vea "Puntos lógicos" en Comentarios.

Valores de punto y cómo se interpretan mediante propiedades

Algunos usos (pero no todos) del tipo Point especifican la ubicación en un espacio de coordenadas. Dependiendo del contexto, la ubicación podría estar en el marco de referencia de un área de contenido o estar dentro del marco de referencia para un elemento de diseño específico.

X e Y para un punto pueden ser valores no enteros. Sin embargo, esto puede presentar la posibilidad de representación de sub píxeles, que puede cambiar colores y anti-alias cualquier línea recta a lo largo del borde de sub píxeles. Así es como el motor de representación XAML trata los límites de sub píxeles. Por lo tanto, para obtener los mejores resultados, use valores enteros al declarar coordenadas y formas que se usan para el posicionamiento y la representación de la interfaz de usuario.

X e Y para un punto pueden ser negativos en algunos casos. Normalmente, esto da como resultado un punto que especifica una coordenada que está deliberadamente fuera del marco de referencia, a menos que haya una traducción adicional. Sin embargo, algunas propiedades XAML rechazan un punto con X o Y negativo como un valor no válido. Las restricciones de valor se suelen anotar en las páginas de referencia de las propiedades.

Puntos lógicos

Algunos usos del tipo Point de Windows Runtime aplicaciones no se relacionan directamente con los marcos de coordenadas de referencia. En su lugar, son puntos lógicos, donde se espera que el valor de X e Y esté comprendido entre 0 y 1 inclusive. Este es un motivo por el que los valores X e Y admiten valores de punto flotante en lugar de restringirse a valores enteros. Los valores de punto lógico se interpretan mediante un contexto: la presentación o el comportamiento finales pueden especificarse o modificarse mediante una propiedad o una configuración diferentes. A veces, los puntos expresan información que no está relacionada con el espacio de coordenadas en absoluto. Algunos ejemplos del concepto de punto lógico en la aplicación son los valores de Animation.KeySpline (paces an animation), RenderTransformOrigin de un UIElement y los valores GradientStop.Offset para linearGradientBrush.

Una propiedad Point-value que es un uso de punto lógico puede invalidar los valores menores que 0 o mayores que 1, pero los detalles varían según la propiedad. Las restricciones de valor se suelen anotar en las páginas de referencia de las propiedades individuales, en lugar de aquí en la referencia de punto.

Valores de punto y API de gráficos XAML

Los elementos gráficos utilizados para definir una interfaz de usuario XAML suelen usar propiedades de valor de punto para declarar sus características. Por ejemplo, un EllipseGeometry usa un valor Point para establecer su propiedad Center .

Los elementos gráficos usan uno de los dos modelos. Algunos de los elementos gráficos se derivan de FrameworkElement. Estos elementos tienen un comportamiento de representación definido cuando se colocan en una interfaz de usuario y cuando se asignan propiedades de elemento. Algunos ejemplos de este tipo de elemento son Rectangle y todos los demás tipos del espacio de nombres Windows.UI.Xaml.Shapes . Otros elementos gráficos no derivan de FrameworkElement y no tienen un comportamiento de representación propio. En su lugar, estos elementos se componen para proporcionar el valor de una propiedad en algún otro elemento que tiene un comportamiento de representación. En otras palabras, son datos para un modelo de gráficos más completo. Por ejemplo, los elementos gráficos que se usan para componer Path.Data, como LineSegment, suelen tener una propiedad Point-value.

Algunos elementos gráficos usan varios valores point representados en una sola propiedad. Estas propiedades usan el tipo PointCollection . Cualquier propiedad de Windows Runtime que toma pointCollection admite una sintaxis XAML que analiza la cadena de atributo para obtener valores X e Y para varios puntos. Un ejemplo de una propiedad gráfica que usa PointCollection es Polygon.Points.

Valores de punto de eventos de entrada XAML y pruebas de posicionamiento

Los datos del evento devuelven un valor Point para determinados eventos de entrada. Por ejemplo, GetCurrentPoint proporciona un valor de coordenada de dónde se produjo un evento pointer en la interfaz de usuario de la aplicación. Por lo general, estos valores point hacen referencia a un determinado marco de referencia de coordenadas y es importante saber qué representa ese marco de referencia. En el caso de los eventos de entrada, el marco de referencia de forma predeterminada es la ventana principal de la aplicación, no la pantalla o la pantalla general. Esto permite un marco de referencia coherente en caso de que la ventana se mueva o cambie de tamaño. Algunas API, como GetCurrentPoint y GetPosition , también proporcionan una manera de traducir a un marco de referencia específico del elemento, lo que resulta útil al trabajar con eventos de entrada controlados por un control individual. Para obtener más información, consulta Controlar la entrada del puntero.

El desarrollo de la interfaz de usuario XAML también tiene un concepto conocido como pruebas de posicionamiento, donde puedes usar métodos de utilidad para probar cómo los eventos de entrada notificarían información si el usuario realizara una acción de puntero en una ubicación de coordenadas determinada de la interfaz de usuario. Para admitir el concepto de prueba de posicionamiento, 2 firmas de FindElementsInHostCoordinates usan un parámetro de entrada Point, como lo hace FindSubElementsForTouchTargeting. Para obtener más información, consulta Interacciones de mouse.

Animar valores de punto

El Windows Runtime proporciona un medio para animar los valores de cualquier propiedad que use un point como valor, siempre y cuando esa propiedad se implemente como una propiedad de dependencia. Point tiene su propio tipo de compatibilidad de animación porque no es posible animar individualmente los valores x e y de un point. Las estructuras no pueden admitir propiedades de dependencia. Use el tipo PointAnimation para animaciones de origen a , o use tipos derivados PointAnimationUsingKeyFrames para el comportamiento de animación de fotograma clave. Para obtener más información sobre cómo animar un valor point y cómo funcionan las animaciones en la interfaz de usuario XAML, consulta Animaciones con guion gráfico.

Proyección y miembros de Point

Si usa un lenguaje .NET de Microsoft (C# o Microsoft Visual Basic) o extensiones de componentes de Visual C++ (C++/CX), Point tiene miembros que no son de datos disponibles y sus miembros de datos se exponen como propiedades de lectura y escritura, no campos. Consulte Point in the .NET API Browser (Punto en el explorador de API de .NET).

Si va a programar con C++/WinRT o con la biblioteca de plantillas de C++ (WRL) de Windows Runtime, solo existen los campos de miembro de datos como miembros de Point y no puede usar los métodos o propiedades de la utilidad de la proyección de .NET. El código de C++ puede tener acceso a métodos de utilidad similares que están disponibles desde la clase estática PointHelper .

En esta tabla se muestran los métodos equivalentes disponibles en .NET y C++.

.NET (punto) C++ (PointHelper)
Point(Double, Double) FromCoordinates(Single, Single)

Campos

X

Posición horizontal del punto.

Y

Posición vertical del punto.

Se aplica a

Consulte también