<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";
}
}
}