Поделиться через


ContentElement.CaptureMouse Метод

Определение

Пытается принудительно захватить мышь данным элементом.

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или . Затем приведение интерфейса и вызов метода интерфейса вызывают соответствующую реализацию CaptureMouse для конкретного типа, не требуя приведения пробной версии к UIElement или ContentElement. Этот же метод приведения работает и для других элементов, которые 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

Комментарии

Для записи необходимо включить элемент . Проверьте, есть ли IsEnabled перед true вызовом CaptureMouse.

Если вызов CaptureMouse возвращает true, то IsMouseCaptured также trueимеет значение .

Если вызов CaptureMouse возвращает true, то GotMouseCapture возникают события и IsMouseCapturedChanged , при RoutedEventArgs.Source этом в данных события указывается как элемент, в котором CaptureMouse вызывается метод . При принудительном захвате вы можете помешать существующим захватам, особенно с захватами, связанными с перетаскиванием с помощью мыши.

Чтобы удалить захват мыши от всех элементов, вызовите Mouse.Capture с параметром element , предоставленным как null.

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

См. также раздел