Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

UIElement.CaptureMouse, méthode

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

Espace de noms :  System.Windows
Assembly :  PresentationCore (dans PresentationCore.dll)

public bool CaptureMouse()

Valeur de retour

Type : System.Boolean
true si la souris est capturée correctement ; sinon, false.

Implémentations

IInputElement.CaptureMouse()

Pour être capturé, un élément doit être activé. Vérifiez si IsEnabled a la valeur true avant d'appeler CaptureMouse.

Si l'appel à CaptureMouse retourne la valeur true, IsMouseCaptured a également la valeur true.

Si l'appel à CaptureMouse retourne la valeur true, les événements GotMouseCapture et IsMouseCapturedChanged sont alors déclenchés, avec RoutedEventArgs.Source inclus dans les données d'événement signalées comme élément où la méthode CaptureMouse est appelée. Si vous forcez la capture, vous risquez d'interférer avec les captures en cours, particulièrement avec celles portant sur des opérations de glisser-déplacer par la souris.

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

L'exemple suivant implémente deux gestionnaires, pour l'entrée combinée de la souris et des touches, qui capturent la souris (et annulent sa capture) et active un mode souris particulier pour afficher un modèle 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

Pris en charge dans : 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft