ContentElement.CaptureMouse 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 요소가 마우스를 캡처하게 합니다.
public:
virtual bool CaptureMouse();
public bool CaptureMouse();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean
반환
마우스가 캡처되면 true이고, 그렇지 않으면 false입니다.
구현
예제
다음 예제에서는 마우스가 요소에 의해 이미 캡처되었는지 여부에 따라 마우스 또는 릴리스 캡처를 캡처합니다. 이 예제에서는 예비 캡처 대상 요소를 인터페이스에 IInputElement 캐스팅하므로 처음에 메서드를 호출합니다 IInputElement.CaptureMouse . 으로 IInputElement 캐스팅하는 것은 마우스를 캡처하려는 요소가 인지 아니면 인지 확실하지 않은 경우에 유용한 기술입니다 UIElementContentElement. 그런 다음 인터페이스 캐스트 및 인터페이스 메서드 호출은 또는 ContentElement에 대한 평가판 캐스트를 요구하지 않고 내부적으로 적절한 형식별 CaptureMouse 구현을 UIElement 호출합니다. 이 동일한 캐스팅 기술은 많은 입력 관련 이벤트 및 기타 입력 관련 메서드를 instance 정의하는 다른 멤버 IInputElement 에 대해 작동합니다.
private void CaptureMouseCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Mouse Command");
IInputElement target = Mouse.DirectlyOver;
target = target as Control;
if (target != null)
{
if (!target.IsMouseCaptured)
{
Mouse.Capture(target);
} else {
Mouse.Capture(null);
}
}
}
Private Sub CaptureMouseCommandExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
MessageBox.Show("Mouse Command")
Dim target As IInputElement = Mouse.DirectlyOver
target = TryCast(target, Control)
If target IsNot Nothing Then
If Not target.IsMouseCaptured Then
Mouse.Capture(target)
Else
Mouse.Capture(Nothing)
End If
End If
End Sub
설명
캡처하려면 요소를 사용하도록 설정해야 합니다. 를 호출CaptureMouse하기 전에 가 true 인지 확인 IsEnabled 합니다.
를 호출 CaptureMouse 하면 도 IsMouseCaptured 가 반환true됩니다true.
호출 CaptureMouse 이 를 반환 true하면 GotMouseCapture 및 이벤트가 발생하며 IsMouseCapturedChanged , RoutedEventArgs.Source 이벤트 데이터는 메서드가 호출되는 CaptureMouse 요소로 보고됩니다. 캡처를 강제 적용하면 기존 캡처를 방해할 수 있습니다. 특히 마우스로 끌어서 놓기와 관련된 캡처를 사용할 수 있습니다.
모든 요소에서 마우스 캡처를 지우려면 로 제공된 null매개 변수를 element 사용하여 를 호출 Mouse.Capture 합니다.