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.
var location = myTextBlock.PointToScreen(new Point(0,0));
window.Left = location.X;
window.Top = location.Y-window.Height;
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.
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