ОК, MouseEventArgs предоставляет функцию 'GetPosition', которая запрашивает элемент пользовательского интерфейса, который даст вам относительное положение мыши. Это в основном то, что вы хотите сделать.
private void ellipse1_MouseMove(object sender, MouseEventArgs e)
{
// This will get the mouse cursor relative to the upper left corner of your ellipse.
// Note that nothing will happen until you are actually inside of your ellipse.
Point curPoint = e.GetPosition(ellipse1);
// Assuming that your ellipse is actually a circle.
Point center = new Point(ellipse1.Width / 2, ellipse1.Height / 2);
// A bit of math to relate your mouse to the center...
Point relPoint = new Point(curPoint.X - center.X, curPoint.Y - center.Y);
// The fruit of your labor.
Console.WriteLine("({0}:{1})", relPoint.X, relPoint.Y);
}
Похоже, что из ваших комментариев и оставшихся постов вы можете самостоятельно обрабатывать фактическую часть вычисления угла теперь, когда у вас есть правильная информация. Что касается единиц, WPF использует независимую от устройства систему координат. Таким образом, круг с радиусом 50 не обязательно будет 50 пикселей. Все зависит от вашей системы, разрешения экрана и т. Д. Это все довольно скучно, но это вам кое-что объяснит, если вы действительно заинтересованы.
http://msdn.microsoft.com/en-us/library/ms748373.aspx