C#WPF--鼠标单击从单击中心生成形状
我正在开发一个实践应用程序,当您在画布内单击时,它会将蓝色方块添加到画布中。其中一个要求是在该点添加形状,鼠标代表新形状的中心。 默认情况下,鼠标的单击点将位于正方形的左上角。有没有办法让正方形从鼠标点击的中心而不是右上角生成 这是我当前将方块添加到画布的方式:C#WPF--鼠标单击从单击中心生成形状,c#,wpf,canvas,mouseclick-event,C#,Wpf,Canvas,Mouseclick Event,我正在开发一个实践应用程序,当您在画布内单击时,它会将蓝色方块添加到画布中。其中一个要求是在该点添加形状,鼠标代表新形状的中心。 默认情况下,鼠标的单击点将位于正方形的左上角。有没有办法让正方形从鼠标点击的中心而不是右上角生成 这是我当前将方块添加到画布的方式: private void canvasArea_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Shape Rendershap
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);
}
您只需将矩形的宽度和高度移动一半,请参见以下代码:
Canvas.SetLeft(Rendershape, e.GetPosition(canvasArea).X - ( Rendershape.Width / 2.0 ) );
Canvas.SetTop(Rendershape, e.GetPosition(canvasArea).Y - ( Rendershape.Height / 2.0 ) );