Sdílet prostřednictvím


ContentElement.CaptureMouse Metoda

Definice

Pokusí se vynutit zachycení myši na tento prvek.

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

Návraty

truepokud je myš úspěšně zachycena; v opačném případě . false

Implementuje

Příklady

Následující příklad zachytí zachycení myši nebo uvolnění na základě toho, jestli je myš již zachycena elementem . Všimněte si, že tento příklad přetypuje cílový prvek potenciálního zachycení do IInputElement rozhraní, a proto na začátku volá metodu IInputElement.CaptureMouse . Přetypování do IInputElement je technika, která je užitečná, pokud si nejste jistí, jestli je prvek, který chcete zachytit myší, nebo UIElementContentElement. Přetypování rozhraní a volání metody rozhraní pak interně volá příslušnou implementaci CaptureMouse specifického typu bez nutnosti zkušebního přetypování na nebo UIElementContentElement. Stejná technika přetypování funguje pro jiné členy, které IInputElement definují například mnoho událostí souvisejících se vstupem a další metody související se vstupem.

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

Poznámky

Chcete-li zachytit prvek, musí být povolen. Zkontrolujte, jestli IsEnabled je true před voláním .CaptureMouse

Pokud volání CaptureMouse vrátí true, pak IsMouseCaptured je také true.

Pokud volání CaptureMouse vrátí true, pak GotMouseCapture se vygenerují události a IsMouseCapturedChanged s RoutedEventArgs.Source daty událostí hlášenými jako element, kde CaptureMouse je volána metoda. Pokud vynutíte zachycení, můžete kolidovat s existujícími zachyceními – zejména s zachyceními, které se týkají přetažení myší.

Pokud chcete vymazat zachycení myši ze všech prvků, volejte Mouse.Capture s parametrem zadaným element jako null.

Platí pro

Viz také