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 합니다.
적용 대상
추가 정보
.NET