2009-05-28 10 views
2

私の3Dエディタアプリケーションでは、シーンのエンティティ(メッシュ、ライト、カメラなど)をクリックして移動できます。これを行うには、現在のマウス位置をDirect3dビューに関連させて、どうにかしてViewModelに渡す必要があると思います。私のアプリがMVVMパターンで構築されていることを考えれば、どうやってそれをやりますか?MVVM 3Dエディタアプリケーションの作成 - >マウスの位置を取得しますか?

追加情報Direct3dレンダラーはC++ DLLからのもので、HwndHostを使用してWPFアプリケーション内に配置しています。それは私がそこにマウスのメッセージを処理するために使用できると思うWndProcを持っていますが、私はむしろ可能であればそれを避けるだろう。

ありがとうございます! thatsのない十分場合は

Mouse.Position(RelativeToObject); // get the mouse pos relative to an object 
Mouse.Position(null); // get the mouse pos relative to the whole screen 

でマウス位置を取得することができます

答えて

1

私が見つけた最良の解決策は、添付の動作を使用することです。 HwndHostのプレースホルダとして機能制御にIは

MouseBehaviorが制御を受信し、その上にマウスイベントを設定
b:MouseBehavior.LeftClick="{Binding DoSomeActionCommand}" 

ように、添付プロパティを設定します。

それは私のためにうまくいきます。

-1

、あなたは、Win32を呼び出し使用することができます。

関連する問題