Язык

ContentElement.CaptureMouse Метод

Определение

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

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

Возвращаемое значение

Значение в противном случае .

Реализации

Примеры

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

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

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