ContentElement.CaptureMouse Méthode

Définition

Essaie de forcer la capture de la souris par cet élément.Attempts to force capture of the mouse to this element.

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

Retours

Boolean

true si la souris est capturée correctement ; sinon, false.true if the mouse is successfully captured; otherwise, false.

Implémente

Exemples

L’exemple suivant capture la souris ou libère la capture, selon que la souris est déjà capturée ou non par l’élément.The following example captures the mouse or releases capture, based on whether the mouse is already captured by the element. Notez que cet exemple convertit l’élément cible de capture potentielle en interface IInputElement, et appelle donc initialement la méthode IInputElement.CaptureMouse.Note that this example casts the prospective capture target element to the IInputElement interface, and is thus initially calling the IInputElement.CaptureMouse method. La conversion en IInputElement est une technique qui est utile si vous ne savez pas si l’élément dont vous souhaitez capturer la souris est un UIElement ou un ContentElement.Casting to IInputElement is a technique that is useful if you are unsure whether the element you want to have capture the mouse is a UIElement or a ContentElement. L’interface est castée et l’appel de la méthode d’interface appelle ensuite l’implémentation de CaptureMouse appropriée propre au type en interne, sans nécessiter de conversion d’essai en UIElement ou ContentElement.The interface cast and the interface method call then calls the appropriate type-specific CaptureMouse implementation internally without requiring a trial cast to either UIElement or ContentElement. Cette même technique de cast fonctionne pour les autres membres que IInputElement définit, par exemple un grand nombre d’événements liés à l’entrée et d’autres méthodes liées à l’entrée.This same casting technique works for other members that IInputElement defines, for instance many of the input-related events, and other input-related methods.

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és, un élément doit être activé.To be captured, an element must be enabled. Vérifiez si IsEnabled est true avant d’appeler CaptureMouse.Check whether IsEnabled is true before you call CaptureMouse.

Si l’appel de CaptureMouse retourne true, IsMouseCaptured est également true.If calling CaptureMouse returns true, then IsMouseCaptured is also true.

Si l’appel de CaptureMouse retourne true, les événements GotMouseCapture et IsMouseCapturedChanged sont déclenchés, avec RoutedEventArgs.Source dans les données d’événement signalées comme élément où la méthode CaptureMouse est appelée.If calling CaptureMouse returns true, then the GotMouseCapture and IsMouseCapturedChanged events are raised, with RoutedEventArgs.Source in the event data reported as the element where the CaptureMouse method is called. Si vous forcez la capture, vous risquez d’interférer avec les captures existantes, en particulier avec les captures qui se rapportent au glisser-déplacer avec la souris.If you force capture, you might interfere with existing captures - especially with captures that relate to drag-and-drop with the mouse.

Pour effacer la capture de la souris de tous les éléments, appelez Mouse.Capture avec le paramètre element fourni en tant que null.To clear mouse capture from all elements, call Mouse.Capture with the element parameter provided as null.

S’applique à

Voir aussi