Ler em inglês

Compartilhar via


UIElement.CaptureMouse Método

Definição

Tenta forçar a captura do mouse para esse elemento.

C#
public bool CaptureMouse();

Retornos

true se o mouse for capturado com êxito; caso contrário, false.

Implementações

Exemplos

O exemplo a seguir implementa um par de manipuladores para a combinação de entrada de mouse e chave que capturam (e descapturam) o mouse e habilitam um modo de mouse especial para exibir um 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();
}

Comentários

Para ser capturado, um elemento deve ser habilitado. Verifique se IsEnabled é true antes de chamar CaptureMouse.

Se chamar CaptureMouse retornar true, também IsMouseCapturedtrueserá .

Se a chamada CaptureMouse retornar , os GotMouseCapture eventos e IsMouseCapturedChanged serão gerados, com RoutedEventArgs.Source nos dados de evento relatados como o elemento em que o CaptureMousetruemétodo é chamado. Se você forçar a captura, poderá interferir nas capturas existentes, especialmente com capturas relacionadas ao arrastar e soltar com o mouse.

Para limpar a captura do mouse de todos os elementos, chame Mouse.Capture com o element parâmetro fornecido como null.

Aplica-se a

Produto Versões
.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

Confira também