Mouse.LostMouseCaptureEvent
<Window x:Class="RoutedEvents.MousePosition" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MousePosition" Height="300" Width="300"> <StackPanel> <Rectangle Name="rect" MouseMove="MouseMoved" Fill="LightBlue" ></Rectangle> <Button Name="cmdCapture" Click="cmdCapture_Click">Capture the Mouse</Button> <TextBlock Name="lblInfo"></TextBlock> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace RoutedEvents { public partial class MousePosition : System.Windows.Window { public MousePosition() { InitializeComponent(); } private void cmdCapture_Click(object sender, RoutedEventArgs e) { this.AddHandler(Mouse.LostMouseCaptureEvent,new RoutedEventHandler(this.LostCapture)); Mouse.Capture(rect); cmdCapture.Content = "Mouse captured"; } private void MouseMoved(object sender, MouseEventArgs e) { Point pt = e.GetPosition(this); lblInfo.Text = String.Format("({0},{1}) in window coordinates",pt.X, pt.Y); } private void LostCapture(object sender, RoutedEventArgs e) { lblInfo.Text = "Lost capture"; cmdCapture.Content = "Capture the Mouse"; } } }