ContentElement.CaptureMouse 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
嘗試強制將滑鼠的捕捉給這個項目。
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 是一種技術,如果您不確定您想要擷取滑鼠的專案是否為 UIElement 或 ContentElement ,則此技術很有用。 介面轉換和介面方法呼叫接著會在內部呼叫適當的類型特定 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 之前。
如果呼叫 會傳 CaptureMousetrue
回 ,則 IsMouseCaptured 也是 true
。
如果呼叫 會傳 true
CaptureMouse 回 ,則會 GotMouseCapture 引發 和 IsMouseCapturedChanged 事件,並在 RoutedEventArgs.Source 事件資料中回報為 CaptureMouse 呼叫 方法的專案。 如果您強制擷取,可能會干擾現有的擷取,特別是與滑鼠拖放相關的擷取。
若要清除所有元素的滑鼠擷取,請使用 element
提供的參數 null
呼叫 Mouse.Capture 。