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 vydané verze na základě toho, zda je myš již zachycena elementem. Všimněte si, že tento příklad přetypuje potenciální cílový prvek zachycení do IInputElement rozhraní, a proto původně volá metodu IInputElement.CaptureMouse . IInputElement Přetypování je technika, která je užitečná, pokud si nejste jisti, zda prvek, který chcete zachytit myš je nebo UIElementContentElement. Přetypování rozhraní a volání metody rozhraní pak volá příslušnou implementaci CaptureMouse specifické pro typ interně bez nutnosti přetypování zkušební verze na buď UIElement nebo ContentElement. Stejná technika přetypování funguje pro ostatní členy, které IInputElement definují, například mnoho událostí souvisejících se vstupem a další metody související se vstupy.

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

Aby bylo možné zachytit prvek, musí být povolen. Zkontrolujte, jestli IsEnabled je true před voláním CaptureMouse.

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

Pokud volání CaptureMouse vrátí true, pak a GotMouseCaptureIsMouseCapturedChanged události jsou vyvolány, s RoutedEventArgs.Source v datech události hlášen jako prvek, 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é souvisí s přetažením myší.

Chcete-li vymazat zachycení myši ze všech prvků, zavolejte Mouse.Capture s parametrem zadaným element jako null.

Platí pro

Viz také