2011-01-23 3 views
1

내 응용 프로그램에서 "작업 영역"을 관리하는 더 좋은 방법을 생각하고 있습니다. 사용자가이 공간에서 물건을 이동할 수 있으며 예를 들어 이동할 수 있습니다.이동할 수있는 공간 관리 (Silverlight)

내 응용 프로그램 인터페이스가 있고 주위에 버튼이 몇 개 있고 중간에 캔버스에 사용자가 이동하여 작업 할 수있는 위젯이 있다고 상상해 봅시다.이 공간을 이동하여 이동할 수 있습니다. .

팬의 경우이 공간 (부울 값 "UserMoving"을 true로 전환)에서 MouseLeftButtonDown을 처리하고 MouseMove에서 2 이벤트 사이의 델타에서 변환에 적용하려고합니다.), 내가 MouseLeftButtonUp을 감지 할 때까지, 그가 멈춘 것을 알기 위해 (UserMoving을 false로). 문제는 사용자가 "마우스 왼쪽 버튼을 위로"공간 자체 (Canvas)가 아니라면, 나는 그가 마우스를 놓은 적이 절대로 없을 것입니다. 애플리케이션에서 팬 (또는 위젯을 드래그 & 드롭)을 릴리스 할 수 있다는 사실을 관리하는 가장 좋은 방법은 무엇입니까?

누구나 이미 그와 같은 것을 관리하고 도와 줄 수 있습니까?

답변

2

캔버스의 UIElement.CaptureMouse으로 마우스를 가져 가야합니다. 이렇게하면 사용자가 자신의 지역 외부로 이동하더라도 캔버스가 마우스 이벤트를 수신하게됩니다.

마우스가 위로 이동하면 ReleaseMouseCapture으로 전화하십시오.

+0

괜찮습니다. –

관련 문제