web-dev-qa-db-fra.com

Comment définir l'emplacement d'une fenêtre WPF?

J'ai une vue de liste dans laquelle j'ai défini une cellule personnalisée en tant que contrôle utilisateur.

Dans la cellule personnalisée que j'ai donnée à l'hyperlien de l'utilisateur, j'affiche une boîte de dialogue WPF lorsque l'utilisateur clique sur un hyperlien.

Je veux que la boîte de dialogue WPF vienne juste au-dessus de l'hyperlien.

Veuillez me faire savoir comment puis-je y parvenir ou comment définir l'emplacement de la boîte de dialogue de sorte qu'elle vienne juste au-dessus du lien hypertexte.

32
Ashish Ashu

Window.Left et Window.Top

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

Vous devez définir WindowStartupLocation sur Manual (qui est la valeur par défaut cependant) ainsi que la définition de Top et Left valeurs de propriété.

Le réglage CenterScreen entraîne le positionnement d'une fenêtre au centre de l'écran contenant le curseur de la souris.

La définition de WindowStartupLocation sur CenterOwner entraîne le positionnement d'une fenêtre au centre de sa fenêtre propriétaire (voir Propriétaire), si spécifié. La fenêtre propriétaire peut être une autre fenêtre WPF ou une fenêtre non WPF.

Source

12
ChrisF

Vous devrez obtenir les coordonnées de l'hyperlien, puis définir la position de la fenêtre comme indiqué ici:

http://blog.fossmo.net/post/How-to-set-the-windows-position-in-WPF.aspx

Pour obtenir les positions relatives/absolues des éléments, consultez ici quelques conseils:

http://ivolo.mit.edu/post/WPF-Mouse-and-Point-Acrobatics.aspx

3
Igor Zevaka