ContentElement.CaptureMouse Método

Definição

Tenta forçar a captura do mouse para esse elemento.

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

Retornos

true se o mouse for capturado com êxito; caso contrário, false.

Implementações

Exemplos

O exemplo a seguir captura o mouse ou libera a captura, com base em se o mouse já está capturado pelo elemento . Observe que este exemplo converte o elemento de destino de captura em potencial para a IInputElement interface e, portanto, está inicialmente chamando o IInputElement.CaptureMouse método . A conversão para IInputElement é uma técnica útil se você não tiver certeza se o elemento que você deseja ter para capturar o mouse é um UIElement ou um ContentElement. A conversão de interface e a chamada do método de interface chamam a implementação captureMouse específica do tipo apropriada internamente sem exigir uma conversão de avaliação para UIElement ou ContentElement. Essa mesma técnica de conversão funciona para outros membros que IInputElement definem, por exemplo, muitos dos eventos relacionados à entrada e outros métodos relacionados à entrada.

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

Comentários

Para ser capturado, um elemento deve ser habilitado. Verifique se IsEnabled é true antes de chamar CaptureMouse.

Se chamar CaptureMouse retornar true, também IsMouseCapturedtrueserá .

Se chamar CaptureMouse retornar true, os GotMouseCapture eventos e IsMouseCapturedChanged serão gerados, com RoutedEventArgs.Source no evento os dados relatados como o elemento em que o CaptureMouse método é chamado. Se você forçar a captura, poderá interferir nas capturas existentes, especialmente com capturas relacionadas ao arrastar e soltar com o mouse.

Para limpar a captura do mouse de todos os elementos, chame Mouse.Capture com o element parâmetro fornecido como null.

Aplica-se a

Confira também