ContentElement.CaptureMouse ContentElement.CaptureMouse ContentElement.CaptureMouse ContentElement.CaptureMouse Method

定義

この要素にマウスのキャプチャを強制しようとします。Attempts to force capture of the mouse to this element.

public:
 virtual bool CaptureMouse();
public bool CaptureMouse ();
abstract member CaptureMouse : unit -> bool
override this.CaptureMouse : unit -> bool
Public Function CaptureMouse () As Boolean

戻り値

true マウスが正常にキャプチャされた場合それ以外の場合、falseします。true if the mouse is successfully captured; otherwise, false.

実装

次の例では、マウスをキャプチャまたは要素によって、マウスが既にキャプチャされているかどうかに基づいてキャプチャを解放します。The following example captures the mouse or releases capture, based on whether the mouse is already captured by the element. この例では、見込みのキャプチャ対象の要素はキャストに注意してください、IInputElementインターフェイスし、は、最初に呼び出したため、IInputElement.CaptureMouseメソッド。Note that this example casts the prospective capture target element to the IInputElement interface, and is thus initially calling the IInputElement.CaptureMouse method. キャストIInputElementがわからないかどうか、要素にキャプチャする、マウスが場合に便利ですが、UIElementまたはContentElementします。Casting to IInputElement is a technique that is useful if you are unsure whether the element you want to have capture the mouse is a UIElement or a ContentElement. インターフェイスにキャストしてインターフェイス メソッド実装を呼び出すし、呼び出し、適切な型固有ことで内部的には、試用版のいずれかにキャストを必要とせずUIElementまたはContentElementします。The interface cast and the interface method call then calls the appropriate type-specific CaptureMouse implementation internally without requiring a trial cast to either UIElement or ContentElement. この同じキャスト手法は、その他のメンバーをIInputElement多数定義しています、たとえば、入力関連するイベント、およびその他の入力に関連するメソッド。This same casting technique works for other members that IInputElement defines, for instance many of the input-related events, and other input-related methods.

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

注釈

キャプチャするには、要素を有効にする必要があります。To be captured, an element must be enabled. 確認するかどうかIsEnabledtrueを呼び出す前にCaptureMouseします。Check whether IsEnabled is true before you call CaptureMouse.

呼び出す場合CaptureMouse返しますtrue、しIsMouseCapturedtrueします。If calling CaptureMouse returns true, then IsMouseCaptured is also true.

呼び出す場合CaptureMouse返しますtrueGotMouseCaptureIsMouseCapturedChangedイベントが発生するでRoutedEventArgs.Source要素としてデータを報告するイベントの場所、CaptureMouseメソッドが呼び出されます。If calling CaptureMouse returns true, then the GotMouseCapture and IsMouseCapturedChanged events are raised, with RoutedEventArgs.Source in the event data reported as the element where the CaptureMouse method is called. キャプチャを強制する場合は、既存のキャプチャのキャプチャに関連する、マウスでドラッグ アンド ドロップで特に干渉可能性があります。If you force capture, you might interfere with existing captures - especially with captures that relate to drag-and-drop with the mouse.

すべての要素からマウスのキャプチャをクリアするには、呼び出しMouse.Captureで、elementとして指定されたパラメーターnullします。To clear mouse capture from all elements, call Mouse.Capture with the element parameter provided as null.

適用対象

こちらもご覧ください