source

WPF에서 "Capture the mouse"는 무엇을 의미합니까?

ittop 2023. 4. 12. 23:00
반응형

WPF에서 "Capture the mouse"는 무엇을 의미합니까?

System.Windows.UIElement이 있다CaptureMouse()그리고 쌍으로ReleaseMouseCapture()방법. WPF DragDrop 샘플에서는 CaptureMouse on MouseDown을 호출하여 MouseUp으로 출시합니다.MSDN의 매뉴얼은 "Capture Mouse -> Capture the mouse" (마우스를 캡처합니다)는 전혀 쓸모가 없습니다.

그것을 시도하기 전에 머릿속에서는 그것이 어떻게든 마우스를 UELEMENT의 경계 안에 잠근다고 생각했지만, 내가 그것을 시도했을 때는 확실히 그렇지 않다.실험 결과, 마우스가 UILElement 밖에 있을 때의 이벤트에 대한 대응과 관계가 있는 것 같습니다만, 카고 컬트 프로그래머가 되고 싶지 않기 때문에 사용하고 싶지 않습니다만, 그 의미에 대해 신뢰할 수 있는 설명을 듣고 싶습니다.

MSDN에서 마우스 캡처캡처를 해제합니다.

개체가 마우스를 캡처하면 마우스 포인터가 다른 개체 위에 있더라도 마우스 캡처가 있는 개체가 이벤트를 수행하는 것처럼 모든 마우스 관련 이벤트가 처리됩니다.

캡처 컨트롤만 해제될 때까지 마우스 이벤트를 수신합니다.

마우스를 캡처하면 모든 드래그 코드가 여러 컨트롤에 분산되지 않고 하나의 컨트롤에 존재할 수 있으므로 드래그하는 데 유용합니다.

마우스를 캡처하면 마우스 포인터가 더 이상 경계 영역 내에 없는 경우에도 컨트롤이 마우스 이벤트를 수신합니다.

일반적으로 다음 용도로 사용됩니다.

  • 드래그 앤 드롭
  • 버튼(버튼을 놓기 전에 마우스를 버튼 위에 놓고 마우스를 움직일 때 마우스 위로 이동)

Silverlight 2 설명서는 좀 더 상세하게 설명되어 있습니다.왜 3.5 설명서 페이지의 일부가 아닌지 모르겠습니다.

개체가 마우스를 캡처하면 해당 개체는 마우스 포인터가 경계 영역 내에 있는지 여부에 관계없이 마우스 입력을 받습니다.마우스는 일반적으로 모의 드래그 작업 중에만 캡처됩니다.
...

WPF에서도 동일하게 동작합니다.따라서 DragDrop에서 사용되는 이유는 마우스가 제어권 밖에 있을 때 드래그되는 컨트롤에 대해 보고하는 방법을 알고 있기 때문입니다.MyCanvas를 댓글로 남겨주시면.Capture() 및 Capture(Null)(이것을 클리어)하면 드롭할 수 없게 됩니다.

언급URL : https://stackoverflow.com/questions/942357/what-does-it-mean-to-capture-the-mouse-in-wpf

반응형