2009-06-05 81 views
0

我花了20分钟试图在C#中找到如何在两个矩形之间画线的示例,但我找不到任何东西。我不知道我是否不明白在Silverlight中绘制2D图形的范例,或者我只是在错误的位置查找。确定UIElement在画布上的位置

我已经设置了矩形,所以我可以拖动它们,现在我想在两个形状之间绘制一条线,因为我在画布上拖动了一个矩形。我希望能够像这样做,因为我拖动第二个矩形:

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; 

    } 
} 

如何获取第一个框的坐标?我无法弄清楚如何在我的应用程序中获取相对于画布的形状坐标。我会很感激任何教程,让初学者概述如何绘制简单的2D形状。

谢谢!

回答

8

试试这个

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

位置属性附加属性;)

+0

非常感谢! – 2009-06-05 17:23:35