Я не знаю ни одной встроенной функции в Ellipse, чтобы установить ее центр на точку, но вы можете расширить класс Ellipse, чтобы сделать это.
Добавить этот класс в проект
public static class EllipseX
{
public static void SetCenter(this Ellipse ellipse, double X, double Y)
{
Canvas.SetTop(ellipse, Y - ellipse.Height/2);
Canvas.SetLeft(ellipse, X - ellipse.Width/2);
}
}
Затем в xaml создайте Эллипс
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas Background="LightGray">
<Ellipse
Name="myEllipse"
Fill="Red"
Height="75"
Width="75"
/>
</Canvas>
</Window>
Затем напишите int следующий код в коде:
myEllipse.SetCenter(200,200);
Преимущество этого в том, что вам не нужно повторять логику нахождения центра в каждом создаваемом вами эллипсе.
Надеюсь, это поможет.