Lire en anglais

Partager via


UIElement.CaptureMouse Méthode

Définition

Essaie de forcer la capture de la souris par cet élément.

C#
public bool CaptureMouse();

Retours

true si la souris est capturée correctement ; sinon, false.

Implémente

Exemples

L’exemple suivant implémente une paire de gestionnaires pour la combinaison d’entrées souris et touches qui capturent (et déscapturent) la souris et activent un mode de souris spécial pour afficher un modèle 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();
}

Remarques

Pour être capturé, un élément doit être activé. Vérifiez si IsEnabled est true avant d’appeler CaptureMouse.

Si l’appel CaptureMouse retourne true, IsMouseCaptured est également true.

Si l’appel CaptureMouse retourne true, les GotMouseCapture événements et IsMouseCapturedChanged sont déclenchés, avec RoutedEventArgs.Source dans l’événement les données signalées comme l’élément où la CaptureMouse méthode est appelée. Si vous forcez la capture, vous risquez d’interférer avec les captures existantes, en particulier avec les captures liées au glisser-déplacer avec la souris.

Pour effacer la capture de la souris de tous les éléments, appelez Mouse.Capture avec le element paramètre fourni en tant que null.

S’applique à

Produit Versions
.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

Voir aussi