情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

UIElement.CaptureMouse メソッド

この要素にマウスをキャプチャするように強制することを試みます。

名前空間:  System.Windows
アセンブリ:  PresentationCore (PresentationCore.dll 内)

public bool CaptureMouse()

戻り値

型 : System.Boolean
マウスが正常にキャプチャされた場合は true。それ以外の場合は false

実装

IInputElement.CaptureMouse()

要素をキャプチャするには、要素が有効になっている必要があります。 CaptureMouse を呼び出す前に、IsEnabledtrue になっていることを確認してください。

CaptureMouse を呼び出したときに true が返された場合は、IsMouseCapturedtrue です。

CaptureMouse を呼び出したときに true が返された場合、GotMouseCapture イベントと IsMouseCapturedChanged イベントが発生しています。この場合、イベント データの RoutedEventArgs.Source は、CaptureMouse メソッドが呼び出された要素として報告されます。 キャプチャを強制すると、既存のキャプチャ (特に、マウスによるドラッグ アンド ドロップに関連するキャプチャ) に干渉する可能性があります。

すべての要素からマウスのキャプチャを消去するには、element パラメーターを null に指定して Mouse.Capture を呼び出します。

マウスとキーによる入力の組み合わせを処理する一組のハンドラーを実装する例を次に示します。これらのハンドラーは、マウスをキャプチャ (およびキャプチャ解除) し、3D モデルを表示する特別なマウス モードを有効にします。


private void MouseDownHandler(object sender, MouseButtonEventArgs e)
{
    if (!Enabled) return;
    e.Handled = true;


    if (Keyboard.IsKeyDown(Key.F1) == true)
    {
        Reset();
        return;
    }

    UIElement el = (UIElement)sender;
    _point = e.MouseDevice.GetPosition(el);
    // Initialize the center of rotation to the lookatpoint
    if (!_centered)
    {
        ProjectionCamera camera = (ProjectionCamera)_slaves[0].Camera;
        _center = camera.LookDirection;
        _centered = true;
    }

    _scaling = (e.MiddleButton == MouseButtonState.Pressed);

    if (Keyboard.IsKeyDown(Key.Space) == false)
        _rotating = true;
    else
        _rotating = false;

    el.CaptureMouse();
}

private void MouseUpHandler(object sender, MouseButtonEventArgs e)
{
    if (!_enabled) return;
    e.Handled = true;

    // Stuff the current initial + delta into initial so when we next move we
    // start at the right place.
    if (_rotating == true)
        _rotation = _rotationDelta * _rotation;
    else
    {
        _translate += _translateDelta;
        _translateDelta.X = 0;
        _translateDelta.Y = 0;
    }

    //_scale = _scaleDelta*_scale;
    UIElement el = (UIElement)sender;
    el.ReleaseMouseCapture();
}


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5、3.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

表示:
© 2014 Microsoft