绘制Line,Rect,Ellipse后,我想点击一个形状并用mousemove事件移动它。我怎样才能选择哪个对象?
答案 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顺序顶部的那个,这是您选择的形状。