2009-09-21 4 views
0

J'ai un InkCanvas qui a ses enfants ajoutés par programmation via C#. Ils ne sont pas définis avec InkCanvas.LeftProperty ou InkCanvas.TopProperty. Je me demandais s'il était possible d'obtenir ces valeurs X et Y par défaut des éléments. Actuellement si je vérifie le InkCanvas.LeftProperty ou InkCanvas.TopProperty il renverrait NaN car ils ne sont pas placés. Est-ce possible? Merci d'avance pour votre aide.Récupère les coordonnées X Y d'éléments dans un InkCanvas dans WPF

Cheers,

Nilu

Répondre

0

Vous voulez utiliser différentes méthodes statiques définies sur Canvas pour obtenir ces valeurs - GetLeft(), GetTop(), etc. Je crois que LeftProperty est juste la définition de la propriété attachée elle-même, pas le moyen d'obtenir la valeur.

+0

Oui, vous avez raison. Cependant, même lorsque j'ai utilisé ces méthodes, les valeurs sont NaN. Cependant, j'ai été capable de trouver la méthode VisualTreeHelper qui retournerait le décalage de l'élément par rapport au parent (InkCanvas). Ce qui semble fonctionner atm. Merci de votre aide. :) – Nilu

2

Je pense que cela pourrait être la réponse:

Vector vector = VisualTreeHelper.GetOffset(element);

Il retourne un vecteur avec l'élément décalé par rapport au parent. Plus d'informations peuvent être trouvées here. Edit: Ne pensez pas que cela va m'aider pour ce que je veux faire. Bien que ce soit une bonne méthode si vous définissez la marge sur les éléments initialement. Dans mon cas, je pense que je devrais définir les coordonnées explicitement.

Questions connexes