在绘制了Line、Rect、Ellipse之后,我想要单击一个形状,并使用mousemove事件移动它。我怎样才能知道哪个对象被选中了?
发布于 2009-12-09 15:17:35
您可以将绘制的形状存储为GraphicsPaths,在MouseMove上遍历它们,并使用IsVisible(点)来确定当前鼠标位置何时位于形状的边界内。
发布于 2009-12-09 14:33:25
您需要执行包含测试,以查看您单击的点是否在任何形状内。例如,对于要在圆内的点,下列条件的计算结果必须为true:
Math.Pow(x - centerX, 2) + Math.Pow(y - centerY, 2) <= Math.Pow(radius, 2)您还应该实现某种Z-order (分层)。在获得包含您的点的所有形状的列表后,选择Z顺序顶部的形状,这就是您选择的形状。
https://stackoverflow.com/questions/1871546
复制相似问题