2009-05-28 15 views
2

在我的3D編輯器應用程序中,我希望能夠點擊並移動場景的實體(網格,燈光,相機等)。要做到這一點,我想我需要獲得相對於我的Direct3d視圖的當前鼠標位置,並以某種方式將其提供給我的ViewModel。考慮到我的應用程序是用MVVM模式構建的,我該如何去做呢?構建MVVM 3D編輯器應用程序 - >獲取鼠標位置?

附加信息:Direct3d渲染器來自C++ DLL,我們使用HwndHost將其放置在WPF應用程序中。它有一個WndProc,我想我可以用它來處理鼠標消息,但是我寧願儘可能避免它。

謝謝!

回答

1

我找到的最好的解決方法是使用一個附加行爲。在作爲給HwndHost我設置附加屬性中的佔位符,像

b:MouseBehavior.LeftClick="{Binding DoSomeActionCommand}" 

其中MouseBehavior接收控制,並設置鼠標事件就可以了控制。

它適用於我。

-1

你可以得到鼠標位置

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

如果那還不夠好,你可以使用Win32調用。