Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


ContentElement.CaptureMouse Metoda

Definicja

Ważne

Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.

Próbuje wymusić przechwycenie myszy do tego elementu.

C#
public bool CaptureMouse();

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.

C#
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);
    }
  }
}

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

Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Zobacz też