C#CF拖动图像对象

时间:2009-12-09 04:18:02

标签: c# compact-framework

绘制Line,Rect,Ellipse后,我想点击一个形状并用mousemove事件移动它。我怎样才能选择哪个对象?

2 个答案:

答案 0 :(得分:1)

您可以将绘制的形状存储为GraphicsPaths,在MouseMove上迭代它们并使用IsVisible(Point)确定当前鼠标位置何时在形状边界内。

答案 1 :(得分:0)

您需要执行包含测试以查看您单击的点是否在任何形状内。例如,对于圆内的点,以下必须求值为true:

Math.Pow(x - centerX,  2) + Math.Pow(y - centerY, 2) <= Math.Pow(radius, 2)

您还应该实现某种Z-order(分层)。获取包含您的点的所有形状的列表后,选择Z顺序顶部的那个,这是您选择的形状。