ContentElement.CaptureMouse Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 true
es .
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 CaptureMousetrue
mé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
.