2011-01-23 4 views
1

私はアプリケーション内の "ワークスペース"を管理するより良い方法を考えています。あなたが物事を動かすことができる空間を管理する(Silverlight)

私は自分のアプリケーションインターフェイスを持っていると思いますが、いくつかのボタン、ツリービューなどがあり、途中では、キャンバスにはウィジェットがあり、移動して作業することができます。 。

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

すでに誰かがそれを管理してくれていますか?

答えて

2

CanvasのUIElement.CaptureMouseにマウスを合わせて電話する必要があります。これにより、ユーザーがその地域外に移動した場合でも、キャンバスにマウスイベントが送信されたままになります。

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

+0

大丈夫です! –

関連する問題