如何在WPF中移动Canvas上的一个形状?

4

我在Canvas中添加了一个矩形,方法如下:

Canvas.SetTop(myRectangle, 150);
Canvas.SetLeft(myRectangle, 80);
canvas.Children.Add(myRectangle);

现在我想把矩形移动到其他地方,比如 (100, 100) 的位置。最好的方法是什么?

谢谢!

1个回答

5
如果您想立即将其放置在那里,只需再次调用SetTop和SetLeft。否则,您可以使用StoryBoard,其中可能包含2个DoubleAnimationUsingKeyFrames元素,指定Top和Left属性应在所需的时间段内从150/80更改为100/100(初始值的1个关键帧,最终值的1个关键帧)。

恐怕这不是我需要的。 我来解释一下我想做什么。 我希望用户能够在画布上绘制圆。 首先,用户单击画布上的某个位置来定义圆心。然后,当鼠标移动时,我希望根据当前鼠标位置绘制一个圆(半径是当前鼠标位置和圆心之间的距离)。 我考虑通过向Canvas.Children中添加新的椭圆实现此功能,然后随着每次鼠标移动移动和更改其半径。我走对了吗? - user242408
2
你需要编辑你的问题,因为原始问题明显没有表明你正在尝试进行基于鼠标的绘画或任何类似的操作。那么你想要做的是使用MouseLeftButtonDown、MouseLeftButtonUp和MouseMove事件。Down事件创建形状并将其放置在事件参数中给出的鼠标位置上。Move事件更改形状的尺寸,Up事件释放形状。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接