Рисование квадратов в WPF - PullRequest
       7

Рисование квадратов в WPF

0 голосов
/ 07 февраля 2011

Я хочу добиться следующего с приложением WPF (в определенной области / определенной области):

  • При нажатии и удерживании приложения вы можете нарисовать квадрат
  • Вы можете делать это столько раз, но не перекрывать квадраты
  • Вы можете перетаскивать квадраты вокруг приложения

Что мне нужно для этого, я полагаю, куча onclick / onmove's. Есть ли более простой способ, такой как использование canvas? Любое понимание было бы здорово.

Ответы [ 2 ]

3 голосов
/ 07 февраля 2011

Вам нужно будет использовать холст, если вы хотите, чтобы квадраты появлялись там, где пользователь щелкает мышью и перетаскивает их.Вам нужно было бы ограничить движение курсора так, чтобы размеры прямоугольника по x и y были одинаковыми.

При каждом событии перемещения мыши вы должны проверять, находится ли курсор над одним изсуществующие квадраты и не допускать дальнейшего роста квадрата.

Для перетаскивания существующих квадратов измените событие мыши, чтобы проверить, что находится под курсором.Если это холст, запустите режим рисования квадратов, если это прямоугольник (квадрат), то начните режим перетаскивания.Опять же, вам нужно использовать событие перемещения мыши, чтобы убедиться, что квадрат не пересекается ни с одним из существующих квадратов.

1 голос
/ 07 февраля 2011

Есть статья проекта кода, описывающая, как перетаскивать элементы внутри Canvas: Перетаскивание элементов на холсте

Говоря о упоминании ChrisF об использовании Canvas, я бы предложил вам использовать DragCanvas (найдено в статье)

...