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

UIElement.CaptureMouse メソッド

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

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

public bool CaptureMouse ()
public final boolean CaptureMouse ()
public final function CaptureMouse () : boolean
メソッドは XAML では使用できません。

戻り値

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

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

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

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

すべての要素からマウスのキャプチャを消去するには、element パラメータを null 参照 (Visual Basic では Nothing) に指定して 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();
}

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0

コミュニティの追加

表示:
© 2015 Microsoft