ContentElement.CaptureMouse Método

Definición

Intenta forzar la captura del mouse en este elemento.

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

Devoluciones

Es true si se captura el mouse correctamente; de lo contrario, es false.

Implementaciones

Ejemplos

En el ejemplo siguiente se captura el mouse o libera, en función de si el elemento ya captura el mouse. Tenga en cuenta que en este ejemplo se convierte el elemento de destino de captura potencial en la IInputElement interfaz y, por tanto, se llama inicialmente al IInputElement.CaptureMouse método . La conversión a IInputElement es una técnica que resulta útil si no está seguro de si el elemento que desea capturar el mouse es o UIElement .ContentElement La conversión de interfaz y la llamada al método de interfaz llaman a la implementación captureMouse específica del tipo adecuada internamente sin necesidad de una conversión de prueba en UIElement o ContentElement. Esta misma técnica de conversión funciona para otros miembros que IInputElement definen, por ejemplo, muchos de los eventos relacionados con la entrada y otros métodos relacionados con la entrada.

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

Comentarios

Para capturarse, se debe habilitar un elemento . Compruebe si IsEnabled es true antes de llamar a CaptureMouse.

Si la llamada a CaptureMouse devuelve true, IsMouseCaptured también truees .

Si la llamada a CaptureMouse devuelve , se generan los GotMouseCapture eventos y IsMouseCapturedChanged , con RoutedEventArgs.Source en los datos del evento notificados como el elemento al que se llama al CaptureMousetruemétodo . Si fuerza la captura, puede interferir con las capturas existentes, especialmente con las capturas relacionadas con la arrastrar y colocar con el mouse.

Para borrar la captura del mouse de todos los elementos, llame a Mouse.Capture con el element parámetro proporcionado como null.

Se aplica a

Consulte también