Je ne connais aucune fonctionnalité intégrée dans Ellipse pour définir son centre sur un point, mais vous pouvez étendre la classe Ellipse pour le faire.
Ajouter cette classe au projet
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);
}
}
Puis en XAML créer la Ellipse
<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>
ensuite écrire int code suivant dans le code derrière:
myEllipse.SetCenter(200,200);
L'avantage est que vous n'avez pas à répéter la logique de trouver le centre dans chaque ellipse que vous créez.
Espérons que cela aide.
Cela peut être pris un peu plus loin en utilisant la forme à la place d'Ellipse dans la méthode d'extension. 'public static void SetCenter (cette forme s, double X, double Y) {...}' –