2009-05-28 1 views
2

내 3D 편집기 응용 프로그램에서 장면의 엔티티 (메쉬, 라이트, 카메라 등)를 클릭하고 이동할 수 있기를 원합니다. 그렇게하기 위해 Direct3d 뷰를 기준으로 현재 마우스 위치를 가져 와서 어떻게 든 내 ViewModel에 제공해야한다고 상상합니다. 내 앱이 MVVM 패턴을 기반으로 만들어 졌다고 생각하면 어떻게해야할까요?MVVM 3D 편집기 응용 프로그램 빌드 -> 마우스 위치 가져 오기?

추가 정보 : Direct3d 렌더러는 C++ DLL에 있으며 우리는 HwndHost를 사용하여 WPF 응용 프로그램에 배치합니다. 그것은 내가 마우스 메시지를 처리하는 데 사용할 수 있다고 상상했던 WndProc을 가지고 있지만 가능하다면 그것을 피하려고합니다.

감사합니다.

답변

1

내가 찾은 가장 좋은 방법은 첨부 된 동작을 사용하는 것입니다. MouseBehavior 그것에 마우스 이벤트 컨트롤을 수신하고, 설정

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

같이, I가 연결된 속성 세트 HwndHost하는 자리로서 작용 제어.

잘 작동합니다.

-1

당신은 당신은에서 Win32 호출을 사용할 수

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

충분히 그게 좋지 않은 경우와 마우스 위치를 얻을 수 있습니다.

관련 문제