ContentElement.CaptureMouse Метод

Определение

Пытается принудительно захватить мышь данным элементом.Attempts to force capture of the mouse to this element.

public:
 virtual bool CaptureMouse();
public bool CaptureMouse ();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean

Возвраты

Значение true, если мышь успешно захвачена, в противном случае — значение false.true if the mouse is successfully captured; otherwise, false.

Реализации

Примеры

В следующем примере захват мыши или выпуски выводится в зависимости от того, захвачена ли эта мышь элементом.The following example captures the mouse or releases capture, based on whether the mouse is already captured by the element. Обратите внимание, что в этом примере элемент цели потенциальной записи приводится к интерфейсу IInputElement и, таким образом, изначально вызывается метод IInputElement.CaptureMouse.Note that this example casts the prospective capture target element to the IInputElement interface, and is thus initially calling the IInputElement.CaptureMouse method. Приведение к IInputElement — это методика, которая полезна, если вы не уверены, является ли элемент, который нужно захватить мышью, UIElement или ContentElement.Casting to IInputElement is a technique that is useful if you are unsure whether the element you want to have capture the mouse is a UIElement or a ContentElement. Метод приведения интерфейса и вызов метода интерфейса затем вызывают соответствующую реализацию Каптуремаусе для конкретного типа, не требуя от пробного приведения к UIElement или ContentElement.The interface cast and the interface method call then calls the appropriate type-specific CaptureMouse implementation internally without requiring a trial cast to either UIElement or ContentElement. Этот же метод приведения работает для других членов, которые IInputElement определяет, для экземпляра многих событий, связанных с входом, и других методов, связанных с вводом.This same casting technique works for other members that IInputElement defines, for instance many of the input-related events, and other input-related methods.

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

Комментарии

Для записи необходимо включить элемент.To be captured, an element must be enabled. Перед вызовом CaptureMouseпроверьте, true ли IsEnabled.Check whether IsEnabled is true before you call CaptureMouse.

Если вызов CaptureMouse возвращает true, то IsMouseCaptured также true.If calling CaptureMouse returns true, then IsMouseCaptured is also true.

Если вызов CaptureMouse возвращает true, то возникают события GotMouseCapture и IsMouseCapturedChanged, RoutedEventArgs.Source в данных события, сообщаемых как элемент, где вызывается метод CaptureMouse.If calling CaptureMouse returns true, then the GotMouseCapture and IsMouseCapturedChanged events are raised, with RoutedEventArgs.Source in the event data reported as the element where the CaptureMouse method is called. При принудительном захвате может возникнуть конфликт с существующими захватами, особенно с захватами, которые связаны с перетаскиванием мышью.If you force capture, you might interfere with existing captures - especially with captures that relate to drag-and-drop with the mouse.

Чтобы снять захват с мыши из всех элементов, вызовите Mouse.Capture с параметром element, предоставленным как null.To clear mouse capture from all elements, call Mouse.Capture with the element parameter provided as null.

Применяется к

Дополнительно