ContentElement.CaptureMouse 方法

定義

嘗試強制將滑鼠的捕捉給這個項目。

C#
public bool CaptureMouse();

傳回

如果成功捕捉到滑鼠則為 true,否則為 false

實作

範例

下列範例會根據元素是否已擷取滑鼠,擷取滑鼠或釋放擷取。 請注意,這個範例會將潛在擷取目標元素 IInputElement 轉換成 介面,因此一開始會呼叫 IInputElement.CaptureMouse 方法。 轉型為 IInputElement 是一種技術,如果您不確定您想要擷取滑鼠的專案是否為 UIElementContentElement ,則此技術很有用。 介面轉換和介面方法呼叫接著會在內部呼叫適當的類型特定 CaptureMouse 實作,而不需要將試用版轉型為 UIElementContentElement 。 這個相同的轉型技術適用于定義的其他成員 IInputElement ,例如許多輸入相關事件和其他輸入相關方法。

C#
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);
    }
  }
}

備註

若要擷取,必須啟用專案。 檢查 是否 IsEnabledtrue 呼叫 CaptureMouse 之前。

如果呼叫 會傳 CaptureMousetrue 回 ,則 IsMouseCaptured 也是 true

如果呼叫 會傳 trueCaptureMouse 回 ,則會 GotMouseCapture 引發 和 IsMouseCapturedChanged 事件,並在 RoutedEventArgs.Source 事件資料中回報為 CaptureMouse 呼叫 方法的專案。 如果您強制擷取,可能會干擾現有的擷取,特別是與滑鼠拖放相關的擷取。

若要清除所有元素的滑鼠擷取,請使用 element 提供的參數 null 呼叫 Mouse.Capture

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另請參閱