Leer en inglés

Compartir a través de


UIElement.CaptureMouse Método

Definición

Intenta forzar la captura del mouse en este elemento.

C#
public bool CaptureMouse();

Devoluciones

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

Implementaciones

Ejemplos

En el ejemplo siguiente se implementa un par de controladores para la combinación de entrada de teclas y mouse que capturan (y descapturan) el mouse y habilitan un modo de mouse especial para ver un modelo 3D.

C#
private void MouseDownHandler(object sender, MouseButtonEventArgs e)
{
    if (!Enabled) return;
    e.Handled = true;

    if (Keyboard.IsKeyDown(Key.F1))
    {
        Reset();
        return;
    }

    UIElement el = (UIElement)sender;
    _point = e.MouseDevice.GetPosition(el);
    // Initialize the center of rotation to the lookatpoint
    if (!_centered)
    {
        ProjectionCamera camera = (ProjectionCamera)_slaves[0].Camera;
        _center = camera.LookDirection;
        _centered = true;
    }

    _scaling = (e.MiddleButton == MouseButtonState.Pressed);

    if (!Keyboard.IsKeyDown(Key.Space))
        _rotating = true;
    else
        _rotating = false;

    el.CaptureMouse();
}

private void MouseUpHandler(object sender, MouseButtonEventArgs e)
{
    if (!_enabled) return;
    e.Handled = true;

    // Stuff the current initial + delta into initial so when we next move we
    // start at the right place.
    if (_rotating)
    {
        _rotation = _rotationDelta * _rotation;
    }
    else
    {
        _translate += _translateDelta;
        _translateDelta.X = 0;
        _translateDelta.Y = 0;
    }

    //_scale = _scaleDelta*_scale;
    UIElement el = (UIElement)sender;
    el.ReleaseMouseCapture();
}

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 devuelve CaptureMousetrue, se generan los GotMouseCapture eventos y IsMouseCapturedChanged , con RoutedEventArgs.Source en los datos del evento notificados como el elemento al que se llama al CaptureMouse método . Si fuerza la captura, puede interferir con las capturas existentes, especialmente con 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

Producto Versiones
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también