UIElement.ReleaseMouseCapture UIElement.ReleaseMouseCapture UIElement.ReleaseMouseCapture UIElement.ReleaseMouseCapture Method

定義

この要素がマウス キャプチャを保持していた場合、キャプチャを解放します。Releases the mouse capture, if this element held the capture.

public:
 virtual void ReleaseMouseCapture();
public void ReleaseMouseCapture ();
abstract member ReleaseMouseCapture : unit -> unit
override this.ReleaseMouseCapture : unit -> unit
Public Sub ReleaseMouseCapture ()

実装

次の例は、並列の指定の例にCaptureMouse: マウスのキャプチャのリリースまでのマウス ボタンを処理し、マウスの移動を再度有効にします。The following example is the parallel to the example given for CaptureMouse: it handles mouse button up to release mouse capture and re-enable moving the mouse.

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();
}
Private Sub MouseDownHandler(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
	If Not Enabled Then
		Return
	End If
	e.Handled = True


	If Keyboard.IsKeyDown(Key.F1) = True Then
		Reset()
		Return
	End If

	Dim el As UIElement = CType(sender, UIElement)
	_point = e.MouseDevice.GetPosition(el)
	' Initialize the center of rotation to the lookatpoint
	If Not _centered Then
		Dim camera As ProjectionCamera = CType(_slaves(0).Camera, ProjectionCamera)
		_center = camera.LookDirection
		_centered = True
	End If

	_scaling = (e.MiddleButton = MouseButtonState.Pressed)

	If Keyboard.IsKeyDown(Key.Space) = False Then
		_rotating = True
	Else
		_rotating = False
	End If

	el.CaptureMouse()
End Sub

Private Sub MouseUpHandler(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
	If Not _enabled Then
		Return
	End If
	e.Handled = True

	' Stuff the current initial + delta into initial so when we next move we
	' start at the right place.
	If _rotating = True Then
		_rotation = _rotationDelta * _rotation
	Else
		_translate += _translateDelta
		_translateDelta.X = 0
		_translateDelta.Y = 0
	End If

	'_scale = _scaleDelta * _scale
	Dim el As UIElement = CType(sender, UIElement)
	el.ReleaseMouseCapture()
End Sub

注釈

この要素がキャプチャを保持していない場合は、このメソッドを呼び出しても効果はありません。If this element did not hold the capture, calling this method has no effect. 値をチェックIsMouseCapturedこのメソッドを呼び出す前にします。Consider checking the value of IsMouseCaptured before you call this method.

適用対象

こちらもご覧ください