Прочитать на английском

Поделиться через


UIElement.CaptureMouse Метод

Определение

Пытается принудительно захватить мышь данным элементом.

C#
public bool CaptureMouse();

Возвращаемое значение

Значение true, если мышь успешно захвачена, в противном случае — значение false.

Реализации

Примеры

В следующем примере реализуется пара обработчиков для сочетания ввода мыши и клавиш, которые захватывают (и отменяют захват) мыши и обеспечивают специальный режим мыши для просмотра трехмерной модели.

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();
}

Комментарии

Для записи необходимо включить элемент . Проверьте, есть ли IsEnabled перед true вызовом CaptureMouse.

Если вызов CaptureMouse возвращает true, то IsMouseCaptured также trueимеет значение .

Если вызов CaptureMouse возвращает true, то GotMouseCapture возникают события и IsMouseCapturedChanged , при RoutedEventArgs.Source этом в данных события указывается как элемент, в котором CaptureMouse вызывается метод . При принудительном захвате вы можете помешать существующим захватам, особенно с захватами, связанными с перетаскиванием с помощью мыши.

Чтобы удалить захват мыши от всех элементов, вызовите Mouse.Capture с параметром element , предоставленным как null.

Применяется к

Продукт Версии
.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

См. также раздел