ContentElement.CaptureMouse Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Pokusí se vynutit zachycení myši na tento prvek.
public:
virtual bool CaptureMouse();
public bool CaptureMouse ();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean
Návraty
true
pokud je myš úspěšně zachycena; v opačném případě . false
Implementuje
Příklady
Následující příklad zachytí zachycení myši nebo uvolnění na základě toho, jestli je myš již zachycena elementem . Všimněte si, že tento příklad přetypuje cílový prvek potenciálního zachycení do IInputElement rozhraní, a proto na začátku volá metodu IInputElement.CaptureMouse . Přetypování do IInputElement je technika, která je užitečná, pokud si nejste jistí, jestli je prvek, který chcete zachytit myší, nebo UIElementContentElement. Přetypování rozhraní a volání metody rozhraní pak interně volá příslušnou implementaci CaptureMouse specifického typu bez nutnosti zkušebního přetypování na nebo UIElementContentElement. Stejná technika přetypování funguje pro jiné členy, které IInputElement definují například mnoho událostí souvisejících se vstupem a další metody související se vstupem.
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
Poznámky
Chcete-li zachytit prvek, musí být povolen. Zkontrolujte, jestli IsEnabled je true
před voláním .CaptureMouse
Pokud volání CaptureMouse vrátí true
, pak IsMouseCaptured je také true
.
Pokud volání CaptureMouse vrátí true
, pak GotMouseCapture se vygenerují události a IsMouseCapturedChanged s RoutedEventArgs.Source daty událostí hlášenými jako element, kde CaptureMouse je volána metoda. Pokud vynutíte zachycení, můžete kolidovat s existujícími zachyceními – zejména s zachyceními, které se týkají přetažení myší.
Pokud chcete vymazat zachycení myši ze všech prvků, volejte Mouse.Capture s parametrem zadaným element
jako null
.