2009-06-05 5 views
0

Я потратил 20 минут, пытаясь найти пример на C#, как рисовать линию между двумя прямоугольниками, и я ничего не могу найти. Я не знаю, просто ли я не понимаю парадигму рисования 2D-фигур в Silverlight, или если я просто ищу не в том месте.Определить местоположение 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

спасибо так много! –

+0

добро пожаловать :) –

Смежные вопросы