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。 その後、インターフェイス キャストとインターフェイス メソッド呼び出しは、または ContentElementへのUIElement試用版キャストを必要とせずに、適切な型固有の CaptureMouse 実装を内部的に呼び出します。 この同じキャスト手法は、多くの入力関連イベントや他の入力関連のメソッドなど、定義する他のメンバー 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
注釈
キャプチャするには、要素を有効にする必要があります。 を呼び出すCaptureMouse前に が true
であるかどうかをIsEnabled確認します。
を呼び出すと CaptureMouse が返されるtrue
IsMouseCaptured場合は、 も true
になります。
を呼び出すとCaptureMousetrue
、 イベントと IsMouseCapturedChanged イベントが発生しGotMouseCapture、RoutedEventArgs.Sourceイベント データは メソッドがCaptureMouse呼び出される要素として報告されます。 キャプチャを強制すると、既存のキャプチャ (特にマウスによるドラッグ アンド ドロップに関連するキャプチャ) に干渉する可能性があります。
すべての要素からマウス キャプチャをクリアするには、 としてnull
指定された パラメーターを使用して をelement
呼び出しますMouse.Capture。
適用対象
こちらもご覧ください
.NET