Определить расположение элемента UIE на холсте - PullRequest
0 голосов
/ 05 июня 2009

Я потратил 20 минут, пытаясь найти пример в C #, как нарисовать линию между двумя прямоугольниками, и я ничего не могу найти. Я не знаю, не понимаю ли я просто парадигму рисования 2D-фигур в Silverlight или просто смотрю не туда.

Я настроил прямоугольники, чтобы можно было их перетаскивать, и теперь я хочу нарисовать линию между двумя фигурами, когда перетаскиваю прямоугольник через холст. Я хочу иметь возможность сделать что-то вроде этого, перетаскивая второй прямоугольник:

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-формы.

Спасибо!

1 Ответ

8 голосов
/ 05 июня 2009

попробуйте

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

свойства позиции являются прикрепленными свойствами;)

...