ContentElement.CaptureMouse Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пытается принудительно записать мышь к этому элементу.
public:
virtual bool CaptureMouse();
public bool CaptureMouse();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean
Возвращаемое значение
Реализации
Примеры
В следующем примере записывается мышь или запись выпусков на основе того, уже ли мышь захвачена элементом. Обратите внимание, что этот пример приводит целевой элемент потенциального захвата к IInputElement интерфейсу и, таким образом, изначально вызывает IInputElement.CaptureMouse метод. IInputElement Приведение к — это метод, который полезен, если вы не уверены, является ли элемент, который требуется записать мышь, UIElement является или .ContentElement Приведение интерфейса и вызов метода интерфейса затем вызывает соответствующую реализацию CaptureMouse для конкретного типа, не требуя пробного приведения к либо UIElementContentElement. Этот же метод приведения работает для других элементов, определяющих IInputElement , например, многие события, связанные с входными данными, и другие методы, связанные с входными данными.
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
Комментарии
Для записи необходимо включить элемент.
IsEnabled Проверьте, перед true вызовомCaptureMouse.
Если вызов CaptureMouse возвращается true, то IsMouseCaptured также trueиспользуется .
Если вызов возвращаетсяCaptureMouse, true возникают события и GotMouseCapture события, при IsMouseCapturedChanged этом данные события передаются в качестве элемента, RoutedEventArgs.Source в котором CaptureMouse вызывается метод. При принудительном захвате можно помешать существующим захватам, особенно с захватами, связанными с перетаскиванием с помощью мыши.
Чтобы очистить запись мыши от всех элементов, вызовите Mouse.Capture параметр, предоставленный element как null.