我正在开发一个练习应用程序,当您在画布内单击时,它会在画布上添加蓝色方块。其中一个要求是在该点添加形状,鼠标代表新形状的中心。
默认情况下,鼠标的单击点将位于正方形的左上角。有没有办法让鼠标点击中心而不是右上角产生方形?
这就是我目前将我的方块添加到画布的方式:
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);
}
答案 0 :(得分:2)
您需要做的就是将矩形移动矩形的宽度和高度的一半,请参阅以下代码:
Canvas.SetLeft(Rendershape, e.GetPosition(canvasArea).X - ( Rendershape.Width / 2.0 ) );
Canvas.SetTop(Rendershape, e.GetPosition(canvasArea).Y - ( Rendershape.Height / 2.0 ) );