ContentElement.CaptureMouse Metodo

Definizione

Tenta di forzare l’acquisizione del mouse in questo elemento.

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

Restituisce

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

Implementazioni

Esempio

Nell'esempio seguente viene acquisita l'acquisizione del mouse o delle versioni, in base al fatto che il mouse sia già acquisito dall'elemento. Si noti che questo esempio esegue il cast dell'elemento di destinazione dell'acquisizione potenziale all'interfaccia IInputElement e quindi chiama inizialmente il IInputElement.CaptureMouse metodo. Il cast a IInputElement è una tecnica utile se non si è certi che l'elemento che si vuole acquisire il mouse è un o un UIElementContentElement. Il cast dell'interfaccia e la chiamata al metodo di interfaccia chiama quindi l'implementazione di CaptureMouse specifica del tipo appropriata internamente senza richiedere un cast di valutazione 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 CaptureMouse restituisce true, è IsMouseCaptured anche true.

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

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

Si applica a

Vedi anche