Skip to main content
.NET Framework Class Library
UIElementReleaseMouseCapture Method

Releases the mouse capture, if this element held the capture.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
Syntax
Public Sub ReleaseMouseCapture
public void ReleaseMouseCapture()
public:
virtual void ReleaseMouseCapture() sealed
abstract ReleaseMouseCapture : unit -> unit  
override ReleaseMouseCapture : unit -> unit

Implements

IInputElementReleaseMouseCapture
Remarks

If this element did not hold the capture, calling this method has no effect. Consider checking the value of IsMouseCaptured before you call this method.

Examples

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 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
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();
}
Version Information

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

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 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.