ContentElement.CaptureMouse Método

Definição

Tenta forçar a captura do rato a este elemento.

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

Devoluções

true se o rato for capturado com sucesso; caso contrário, false.

Implementações

Exemplos

O exemplo seguinte captura o rato ou liberta a captura, com base em se o rato já foi capturado pelo elemento. Note-se que este exemplo lança o elemento alvo de captura potencial para a IInputElement interface, chamando assim inicialmente o IInputElement.CaptureMouse método. Casting para IInputElement é uma técnica útil se não tiver a certeza se o elemento que quer capturar o rato é a UIElement ou um ContentElement. O cast de interface e a chamada de método interface chamam internamente a implementação CaptureMouse específica de tipo apropriada, sem necessidade de um cast de teste para ou UIElementContentElement. Esta mesma técnica de casting funciona para outros membros que IInputElement definem, por exemplo, muitos dos eventos relacionados com a entrada e outros métodos relacionados com a 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

Observações

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

Se a chamada CaptureMouse devolver true, então IsMouseCaptured também é true.

Se chamar CaptureMouse devolver true, então os GotMouseCapture eventos e IsMouseCapturedChanged são levantados, com RoutedEventArgs.Source dados no evento reportados como o elemento onde o CaptureMouse método é chamado. Se forçares a captura, podes interferir com capturas existentes – especialmente com capturas relacionadas com arrastar e largar com o rato.

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

Aplica-se a

Ver também