ContentElement.CaptureMouse Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 IsMouseCapturedtrue
será .
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
.