Udostępnij za pośrednictwem


ContentElement.CaptureMouse Metoda

Definicja

Próbuje wymusić przechwycenie myszy do tego elementu.

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

Zwraca

true jeśli mysz zostanie pomyślnie przechwycona; w przeciwnym razie , false.

Implementuje

Przykłady

Poniższy przykład przechwytuje wskaźnik myszy lub zwalnia przechwytywanie na podstawie tego, czy mysz jest już przechwytywana przez element. Zwróć uwagę, że ten przykład rzutuje potencjalny element docelowy przechwytywania na IInputElement interfejs i dlatego początkowo wywołuje metodę IInputElement.CaptureMouse . Rzutowanie do IInputElement jest techniką, która jest przydatna, jeśli nie masz pewności, czy element, który chcesz przechwycić myszą UIElement , jest lub ContentElement. Rzutowanie interfejsu i wywołanie metody interfejsu wywołuje następnie odpowiednią implementację CaptureMouse specyficzną dla typu wewnętrznie bez konieczności rzutowania próbnego do metody UIElement lub ContentElement. Ta sama technika rzutowania działa dla innych elementów członkowskich, które IInputElement definiują, na przykład wiele zdarzeń związanych z danymi wejściowymi i inne metody związane z danymi wejściowymi.

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

Uwagi

Aby można je było przechwycić, należy włączyć element. Sprawdź, czy IsEnabled przed true wywołaniem metody jest .CaptureMouse

Jeśli wywołanie CaptureMouse zwraca truewartość , IsMouseCaptured jest również truewartością .

Jeśli wywołanie CaptureMouse zwraca truewartość , są GotMouseCapture wywoływane zdarzenia i IsMouseCapturedChanged z RoutedEventArgs.Source danymi zdarzenia zgłoszonymi jako element, w którym jest wywoływana CaptureMouse metoda. Jeśli wymusisz przechwytywanie, możesz zakłócać istniejące przechwytywanie — szczególnie w przypadku przechwytywania odnoszącego się do przeciągania i upuszczania myszą.

Aby wyczyścić przechwytywanie myszy ze wszystkich elementów, wywołaj metodę Mouse.Capture z parametrem element podanym jako null.

Dotyczy

Zobacz też