2010-04-29 21 views
19

Tengo una vista de lista en la que he definido una celda personalizada como control de usuario.¿Cómo establecer la ubicación de una ventana de WPF?

En la celda personalizada que di hipervínculo de usuario, estoy mostrando un cuadro de diálogo WPF cuando el usuario hace clic en un hipervínculo.

Quiero diálogo WPF viene justo por encima del hipervínculo ..

Por favor, hágamelo saber cómo puedo lograr esto o cómo establecer la ubicación del cuadro de diálogo de modo que sólo sale por encima del hipervínculo.

Respuesta

54

Window.Left y Window.Top

var location = myTextBlock.PointToScreen(new Point(0,0)); 
window.Left = location.X; 
window.Top = location.Y-window.Height; 
+0

Josh .. Como llegar el bloque de texto (contenido en el hipervínculo) que puedo conseguir el hipervínculo a través argumento evento "emisor" .. –

+0

he definido el hipervínculo de la siguiente manera:

10

Es necesario configurar el WindowStartupLocation a Manual (que es sin embargo el valor por defecto), así como la definición de los valores de las propiedades Top y Left.

El ajuste CenterScreen hace que se coloque una ventana en el centro de la pantalla que contiene el cursor del mouse.

Al establecer WindowStartupLocation en CenterOwner, se coloca una ventana en el centro de la ventana del propietario (ver Propietario), si se especifica. La ventana de propietario puede ser otra ventana de WPF o una ventana que no sea de WPF.

Source

-1

si establece .Left de la ventana más que el tamaño del monitor (2000 funciona para mí) va ventana en el segundo monitor y se puede entonces "maximizar"

+0

¿Cómo se establece que? –

+0

Los valores de codificación difíciles para hacer que las cosas funcionen en su máquina de desarrollo son realmente malas prácticas. – Danny

Cuestiones relacionadas