Coordenadas de un control en la interfase

Obtener las coordenadas (X, Y) de un control con respecto a otro es muuuuy fácil.

Eventualmente necesitamos conocer las coordenadas de un control sobre la interfase del usuario. Aquellos que trabajan con interfases que presentan diagramas de flujo y otros tipos de objetos en unas muy calculadas ubicaciones sobre la pantalla saben muy bien de esto.

Los demás mortales contamos con un par de instrucciones muy sencillas:

  1. GeneralTransform gt = CualquierControl.TransformToVisual(ControlDeReferencia as UIElement);
  2. Point offset = gt.Transform(new Point(0, 0));

En este ejemplo ‘CualquierControl’ es el control del que queremos obtener sus coordenadas (X, Y) con respecto al control ‘ControlDeReferencia’. Si lo que se desea es la posición del control con respecto a la esquina superior izquierda del plugin de Silverligt entonces ‘ControlDeReferencia’ debería ser aquel control que por defecto en las plantillas aparece con el nombre ‘layoutRoot’ o, para ser más precisos, aquel control que los contiene a todos.

Al final con la instrucción ‘Transform’ obtenemos una estructura tipo ‘Point’ con el deseado (X, Y).

Anuncios

Acerca de SilverIdeas

Instructor y entusiasta en el uso de Silverlight y otras tecnologías XAML.
Esta entrada fue publicada en Silverlight. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s