1

アプリケーションで「ワークスペース」を管理するためのより良い方法を考えています。ユーザーはこのスペースで物を移動したり、たとえばパンしたりできます。

いくつかのボタン、ツリービューなどを備えたアプリケーションインターフェイスがあり、真ん中に、ユーザーが移動して操作できるいくつかのウィジェットを備えたキャンバスがあり、このスペースをパンして移動できると想像してください。

パンについては、このスペースで MouseLeftButtonDown (ブール値の「UserMoving」を true に切り替える) を処理し、MouseMove でスペースへの変換に適用することを考えていました (2 つのイベント間のデルタから)。彼が停止したことを知るために、MouseLeftButtonUp を検出します (UserMoving を false にします)。問題は、ユーザーがスペース自体 (キャンバス) ではない「マウスの左ボタンを押した」場合、彼がマウスを離したことを決して知らないことです。アプリケーションのどこでもパン (またはウィジェットのドラッグ & ドロップ) をリリースできるという事実を管理するには、どうすればよいでしょうか?

誰かがすでにそのようなことを管理していて、私を助けることができますか?

4

1 に答える 1

2

マウス ダウン時に Canvas でUIElement.CaptureMouseを呼び出す必要があります。これにより、ユーザーが領域の外に移動した場合でも、キャンバスはマウス イベントを受信し続けます。

マウスアップで、ReleaseMouseCaptureを呼び出します。

于 2011-01-23T23:10:38.897 に答える