実行時に動的に作成された線(マウス描画線)をc#でドラッグアンドドロップする方法を知りたいだけです。ダイナミックラインはパネルの上に配置されました。
質問する
836 次
1 に答える
1
私は過去に2つの方法を使用しました:
MouseDownで、線とマウスカーソルの間の距離を計算します。数ピクセル以内にある場合は、ドラッグを開始します。MouseButtonがダウンしている間、同じベクトル上で線の始点と終点を移動することにより、MouseMoveに応答します(現在のマウス位置-マウス位置のドラッグを開始します)
MouseDownで、マウスカーソルの下のピクセルの色をテストして、線の上にあるかどうかを確認します。その場合は、上記と同じドラッグを行います。
トリッキーなことは、近くに複数の線があり、どの線をドラッグする必要があるかを見つける必要がある場合、オプション1は難しいということです。
オプション2は、線が非常に細い場合は困難です。
もう1つの方法は、線を引いたときに非表示のビットマップに太い線を描画し、非表示のビットマップのピクセルをテストすることです。そうすれば、もう少し許容範囲を広げることができ、見えない各線に明確な色を付けることができるので、クリックされた線を簡単に識別できます。
これは意味がありますか?
于 2012-05-31T09:36:53.913 に答える