<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006" mc:Ignorable="d" x:Class="InputExamples.MousePosition" Width="640" Height="480"> <Label d:LayoutOverrides="Height" x:Name="firstCoordinates"/> <Rectangle Stroke="#FF000000" Fill="#FFFFFFFF" x:Name="Rectangle"/> <Ellipse Stroke="#FF000000" Fill="#FFFFFFFF" x:Name="secondEllipse"/> <Ellipse d:LayoutOverrides="Height" Stroke="#FF000000" Width="14" Height="14" x:Name="firstEllipse"/> <Ellipse d:LayoutOverrides="Width" Stroke="#FF000000" Width="14" Height="14" x:Name="fourthEllipse"/> <Ellipse d:LayoutOverrides="Width" Stroke="#FF000000" Width="14" Height="14" x:Name="thirdEllipse"/> <Label d:LayoutOverrides="Width, Height" Width="66" Height="22" x:Name="secondCoordinates"/> <Label d:LayoutOverrides="Width, Height" Width="66" Height="22" x:Name="thirdCoordinates"/> <Label d:LayoutOverrides="Width, Height" Width="66" Height="22" x:Name="fourthCoordinates"/> <Ellipse Fill="Red" Width="16" Height="16" x:Name="DragEllipse"/> </Grid> //File:Window.xaml.cs using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Navigation; using System.Windows.Shapes; namespace InputExamples { public partial class MousePosition { private TranslateTransform ellipseTransform = new TranslateTransform(); public MousePosition() { this.InitializeComponent(); } protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); DragEllipse.RenderTransform = ellipseTransform; CompositionTarget.Rendering += this.CompositionTarget_Rendering; } private void CompositionTarget_Rendering(object sender, EventArgs e) { Point mouse1 = Mouse.GetPosition(firstEllipse); Point mouse2 = Mouse.GetPosition(secondEllipse); Point mouse3 = Mouse.GetPosition(thirdEllipse); Point mouse4 = Mouse.GetPosition(fourthEllipse); firstCoordinates.Content = mouse1.ToString(); secondCoordinates.Content = mouse2.ToString(); thirdCoordinates.Content = mouse3.ToString(); fourthCoordinates.Content = mouse4.ToString(); Point position = Mouse.GetPosition(DragEllipse); ellipseTransform.X += position.X - (DragEllipse.Width / 2); ellipseTransform.Y += position.Y - (DragEllipse.Height / 2); } } }