C# WPF - Форма появления клика мышью из центра клика
Я работаю над практическим приложением, которое добавляет синие квадраты на холст, когда вы нажимаете внутри холста. Одним из требований является то, что фигура добавляется в этой точке с помощью мыши, представляющей центр новой фигуры.
По умолчанию точка щелчка мыши будет находиться в верхнем левом углу квадрата. Есть ли способ сделать квадратный икру из центра щелчка мышью вместо правого верхнего угла?
Вот как я сейчас добавляю свои квадраты на холст:
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);
}
1 ответ
Решение
Все, что вам нужно сделать, это сместить прямоугольник на половину ширины и высоты прямоугольника, см. Следующий код:
Canvas.SetLeft(Rendershape, e.GetPosition(canvasArea).X - ( Rendershape.Width / 2.0 ) );
Canvas.SetTop(Rendershape, e.GetPosition(canvasArea).Y - ( Rendershape.Height / 2.0 ) );