ContentElement.CaptureMouse Metodo

Definizione

Tenta di forzare l'acquisizione del mouse su questo elemento.

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

Valori restituiti

true se il mouse viene acquisito correttamente; in caso contrario, false.

Implementazioni

Esempio

L'esempio seguente acquisisce il mouse o rilascia l'acquisizione, in base al fatto che il mouse sia già acquisito dall'elemento . Si noti che questo esempio esegue il cast dell'elemento di destinazione di acquisizione potenziale all'interfaccia IInputElement e quindi chiama inizialmente il IInputElement.CaptureMouse metodo . Il cast a IInputElement è una tecnica utile se non si è certi se l'elemento a cui si vuole acquisire il mouse è o UIElement .ContentElement Il cast dell'interfaccia e la chiamata al metodo di interfaccia chiamano internamente l'implementazione CaptureMouse specifica del tipo appropriata senza richiedere un cast di prova a UIElement o ContentElement. Questa stessa tecnica di cast funziona per altri membri che IInputElement definiscono, ad esempio molti degli eventi correlati all'input e altri metodi correlati all'input.

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

Commenti

Per essere acquisito, è necessario abilitare un elemento. Verificare se IsEnabled è true prima di chiamare CaptureMouse.

Se la chiamata restituisce CaptureMousetrue, IsMouseCaptured anche .true

Se la chiamata restituisce CaptureMousetrue, vengono generati gli GotMouseCapture eventi e IsMouseCapturedChanged , con RoutedEventArgs.Source nei dati dell'evento segnalati come elemento in cui viene chiamato il CaptureMouse metodo . Se si forza l'acquisizione, è possibile interferire con le acquisizioni esistenti, in particolare con le acquisizioni correlate al trascinamento della selezione con il mouse.

Per cancellare l'acquisizione del mouse da tutti gli elementi, chiamare Mouse.Capture con il element parametro fornito come null.

Si applica a

Vedi anche