ContentElement.CaptureMouse Méthode

Définition

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

public:
 virtual bool CaptureMouse();
public bool CaptureMouse ();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean

Retours

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

Implémente

Exemples

L’exemple suivant capture la souris ou libère la capture, selon que la souris est déjà capturée par l’élément. Notez que cet exemple caste l’élément cible de capture potentielle dans l’interface IInputElement et appelle donc initialement la IInputElement.CaptureMouse méthode. La conversion vers IInputElement est une technique utile si vous ne savez pas si l’élément que vous souhaitez capturer la souris est un UIElement ou un ContentElement. Le cast d’interface et l’appel de méthode d’interface appellent ensuite l’implémentation CaptureMouse spécifique au type approprié en interne sans nécessiter de cast d’essai sur UIElement ou ContentElement. Cette même technique de cast fonctionne pour d’autres membres qui IInputElement définit, pour instance de nombreux événements liés aux entrées, et d’autres méthodes liées aux entrées.

private void CaptureMouseCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
  MessageBox.Show("Mouse Command");
  IInputElement target = Mouse.DirectlyOver;

  target = target as Control;
  if (target != null)
  {
    if (!target.IsMouseCaptured)
    {
      Mouse.Capture(target);
    } else {
      Mouse.Capture(null);
    }
  }
}
Private Sub CaptureMouseCommandExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
  MessageBox.Show("Mouse Command")
  Dim target As IInputElement = Mouse.DirectlyOver

  target = TryCast(target, Control)
  If target IsNot Nothing Then
    If Not target.IsMouseCaptured Then
      Mouse.Capture(target)
    Else
      Mouse.Capture(Nothing)
    End If
  End If
End Sub

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 à

Voir aussi