ContentElement.CaptureMouse Metoda

Definicja

Próbuje wymusić przechwycenie wskaźnika myszy do tego elementu.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

Zwraca

true, jeśli mysz została przechwycona pomyślnie; w przeciwnym razie false.true if the mouse is successfully captured; otherwise, false.

Implementuje

Przykłady

Poniższy przykład przechwytuje funkcję przechwytywania myszą lub wydaniami, w zależności od tego, czy mysz jest już przechwycona przez element.The following example captures the mouse or releases capture, based on whether the mouse is already captured by the element. Należy zauważyć, że ten przykład rzutuje potencjalny element docelowy przechwytywania na interfejs IInputElement i w ten sposób początkowo wywołuje metodę 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. Rzutowanie na IInputElement jest techniką, która jest przydatna, jeśli nie masz pewności, czy element, który ma być przechwycony, jest UIElement lub 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. Rzutowanie interfejsu i wywołanie metody interfejsu następnie wywołuje odpowiednią implementację CaptureMouse specyficzną dla określonego typu w sposób wewnętrzny bez konieczności rzutowania wersji próbnej na UIElement lub 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. Ta sama technika rzutowania działa dla innych składowych, które IInputElement definiuje, dla wystąpienia wielu zdarzeń związanych z danymi wejściowymi i innych metod związanych z danymi wejściowymi.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

Uwagi

Aby można było przechwycić element, musi on być włączony.To be captured, an element must be enabled. Przed wywołaniem CaptureMouseSprawdź, czy IsEnabled jest true.Check whether IsEnabled is true before you call CaptureMouse.

Jeśli wywołanie CaptureMouse zwraca true, IsMouseCaptured jest również true.If calling CaptureMouse returns true, then IsMouseCaptured is also true.

Jeśli wywołanie CaptureMouse zwraca true, zostaną wywołane zdarzenia GotMouseCapture i IsMouseCapturedChanged z RoutedEventArgs.Source w danych zdarzenia raportowanych jako element, w którym wywoływana jest metoda CaptureMouse.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. Jeśli wymusisz przechwytywanie, możesz zakłócać istniejące przechwycenia — szczególnie w przypadku przechwytywania, które odnoszą się do przeciągania i upuszczania za pomocą myszy.If you force capture, you might interfere with existing captures - especially with captures that relate to drag-and-drop with the mouse.

Aby wyczyścić funkcję przechwytywania myszy ze wszystkich elementów, wywołaj Mouse.Capture z parametrem element dostarczonym jako null.To clear mouse capture from all elements, call Mouse.Capture with the element parameter provided as null.

Dotyczy

Zobacz też