在WPF中绘制正方形

时间:2011-02-06 23:30:25

标签: c# wpf drawing

我希望使用WPF应用程序(在某个区域/定义区域中)实现以下目标:

  • 点击并按住应用程序时,您可以绘制正方形
  • 您可以多次执行此操作,但不会重叠任何方块
  • 您可以在应用程序周围拖动方块

我需要做些什么,我假设有一堆onclick / onmove。有没有更简单的方法,比如使用帆布?任何见解都会很棒。

2 个答案:

答案 0 :(得分:3)

如果您希望方块显示在用户点击和拖动的位置,则必须使用画布。

鼠标按下事件将定义一个角落,鼠标向上定义第二个角落。您必须约束光标的移动,以使矩形的x和y尺寸相同。

在每次鼠标移动事件中,你必须检查光标是否超过现有的一个方块,并防止方块进一步增长。

对于拖动现有方块,修改鼠标按下事件以检查光标下的内容。如果它是画布开始方形绘制模式,如果它是一个矩形(正方形),则开始拖动模式。同样,您需要使用鼠标移动事件来检查方块是否与任何现有方块相交。

答案 1 :(得分:1)

有一篇代码项目文章描述了如何在Canvas中拖动元素:Dragging Elements in a Canvas

说到ChrisF提到使用Canvas,我建议你使用DragCanvas(在文章中找到)