Я работаю над практическим приложением, которое добавляет синие квадраты на холст, когда вы щелкаете внутри холста. Одним из требований является то, что фигура добавляется в этой точке, а мышь представляет собой центр новой фигуры.
По умолчанию точка щелчка мыши будет в левом верхнем углу квадрата. Есть ли способ заставить квадрат появляться из центра щелчка мыши, а не в правом верхнем углу?
Вот как я сейчас добавляю свои квадраты на холст:
private void canvasArea_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Shape Rendershape = null;
switch (Shape1)
{
case SelectedShape.Rectangle:
Rendershape = new Rectangle()
{
Fill = Brushes.Blue,
Height = num1,
Width = num2
};
break;
default:
return;
}
Canvas.SetLeft(Rendershape, e.GetPosition(canvasArea).X);
Canvas.SetTop(Rendershape, e.GetPosition(canvasArea).Y);
canvasArea.Children.Add(Rendershape);
}