ContentElement.CaptureMouse Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
.