¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

UIElement.CaptureMouse (Método)

Intenta forzar la captura del mouse en este elemento.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationCore (en PresentationCore.dll)

public bool CaptureMouse()

Valor devuelto

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

Implementaciones

IInputElement.CaptureMouse()

Para ser capturado, un elemento debe estar habilitado. Compruebe si IsEnabled es true antes de llamar a CaptureMouse.

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

Si la llamada a CaptureMouse devuelve true, se provocan los eventos GotMouseCapture y IsMouseCapturedChanged, con la indicación de que la propiedad RoutedEventArgs.Source de los datos de evento es el elemento donde se llama al método CaptureMouse. Si fuerza la captura, podría interferir con las capturas existentes, especialmente las relacionadas con las operaciones de arrastrar y colocar con el mouse.

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

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


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


    if (Keyboard.IsKeyDown(Key.F1) == true)
    {
        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) == false)
        _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 == true)
        _rotation = _rotationDelta * _rotation;
    else
    {
        _translate += _translateDelta;
        _translateDelta.X = 0;
        _translateDelta.Y = 0;
    }

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


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft