ContentElement.CaptureMouse Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.