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