1

我只想知道如何在 c# 中拖放一条在运行时动态创建的线(鼠标绘制线)。动态线放置在面板上。

4

1 回答 1

1

我过去使用过两种方法:

  1. 在 MouseDown 上计算线和鼠标光标之间的距离。如果它在几个像素内,则开始拖动。当 MouseButton 按下时,通过在同一向量上平移线的起点和终点来响应 MouseMove(当前鼠标位置 - 开始拖动鼠标位置)

  2. 在 MouseDown 上测试鼠标光标下像素的颜色,看它是否超过了线条。如果是这样,请执行与上述相同的拖动。

棘手的是,当有多条线接近并且您需要找出需要拖动哪条线时,选项 1 很难

当线条很细时,选项 2 很难。

另一种方法是在绘制线条时在不可见位图上画一条较粗的线,并在不可见位图上测试像素。这样,您可以提供更多的容差,并且可以为每条不可见的线赋予不同的颜色,以便更容易识别单击了哪条线。

这有意义吗?

于 2012-05-31T09:36:53.913 回答