WPF C#

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

//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);
    }
  }
}