1

実行時に動的に作成された線(マウス描画線)をc#でドラッグアンドドロップする方法を知りたいだけです。ダイナミックラインはパネルの上に配置されました。

4

1 に答える 1

1

私は過去に2つの方法を使用しました:

  1. MouseDownで、線とマウスカーソルの間の距離を計算します。数ピクセル以内にある場合は、ドラッグを開始します。MouseButtonがダウンしている間、同じベクトル上で線の始点と終点を移動することにより、MouseMoveに応答します(現在のマウス位置-マウス位置のドラッグを開始します)

  2. MouseDownで、マウスカーソルの下のピクセルの色をテストして、線の上にあるかどうかを確認します。その場合は、上記と同じドラッグを行います。

トリッキーなことは、近くに複数の線があり、どの線をドラッグする必要があるかを見つける必要がある場合、オプション1は難しいということです。

オプション2は、線が非常に細い場合は困難です。

もう1つの方法は、線を引いたときに非表示のビットマップに太い線を描画し、非表示のビットマップのピクセルをテストすることです。そうすれば、もう少し許容範囲を広げることができ、見えない各線に明確な色を付けることができるので、クリックされた線を簡単に識別できます。

これは意味がありますか?

于 2012-05-31T09:36:53.913 に答える