2009-06-05 8 views
0

J'ai passé 20 minutes à essayer de trouver un exemple en C# de la façon de tracer une ligne entre deux rectangles, et je ne trouve rien. Je ne sais pas si je ne comprends pas le paradigme du dessin de formes 2D dans Silverlight, ou si je cherche juste au mauvais endroit. J'ai mis en place les rectangles pour les faire glisser, et maintenant je veux tracer une ligne entre les deux formes lorsque je fais glisser un rectangle sur le canevas. Je veux être capable de faire quelque chose comme ça que je fais glisser le second rectangle:Déterminer l'emplacement d'un UIElement sur un canevas

void host1_MouseLeftButtonMove(object sender, MouseEventArgs e) 
{ 
    if (isDown) 
    { 

     this.host1TranslateTransform.X = e.GetPosition(canvas).X - x; 
     this.host1TranslateTransform.Y = e.GetPosition(canvas).Y - y; 

     Line l = new Line(); 
     l.X1 = rect1.X; // does not work 
     l.X2 = e.GetPosition(canvas).X; 
     l.Y1 = rect1.Y; // does not work 
     l.Y2 = e.GetPosition(canvas).Y; 

    } 
} 

Comment puis-je obtenir les coordonnées de la première boîte? Je ne peux pas comprendre comment obtenir les coordonnées des formes relatives à la toile dans mon application. J'apprécierais tous les tutoriels qui donnent un aperçu des débutants sur la façon de dessiner des formes 2D simples.

Merci!

Répondre

8

essayer cette

Canvas.GetTop(element); 
Canvas.GetLeft(element); 

propriétés de position sont des propriétés attachées;)

+0

merci beaucoup! –

+0

vous êtes les bienvenus :) –

Questions connexes