C# 将椭圆添加到鼠标位置?
我正在尝试从鼠标位置向网格添加椭圆。如何定义椭圆的绘制位置 以下是我的鼠标按下事件:C# 将椭圆添加到鼠标位置?,c#,wpf,C#,Wpf,我正在尝试从鼠标位置向网格添加椭圆。如何定义椭圆的绘制位置 以下是我的鼠标按下事件: private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { _sensorPoint = Mouse.GetPosition(GridCanvas); AddSensor(); } 还有我的AddSensor()方法: 如何在画布上单击鼠标的位置添加sensorEllipse 您可以使
private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_sensorPoint = Mouse.GetPosition(GridCanvas);
AddSensor();
}
还有我的AddSensor()方法:
如何在画布上单击鼠标的位置添加sensorEllipse 您可以使用以下任何方法设置位置:
private void AddSensor()
{
Ellipse sensorEllipse = new Ellipse();
SolidColorBrush solidColorBrush = new SolidColorBrush();
solidColorBrush.Color = Color.FromArgb(0, 0, 0, 0);
sensorEllipse.Fill = solidColorBrush;
sensorEllipse.SetValue(Canvas.LeftProperty, _sensorPoint.X);
sensorEllipse.SetValue(Canvas.TopProperty, _sensorPoint.Y);
//Canvas.SetLeft(sensorEllipse, _sensorPoint.X);
//Canvas.SetTop(sensorEllipse, _sensorPoint.Y);
sensorEllipse.StrokeThickness = 2;
sensorEllipse.Stroke = Brushes.Black;
sensorEllipse.Width = 10;
sensorEllipse.Height = 10;
//adding event handler for right mouse down:
sensorEllipse.MouseRightButtonDown += new MouseButtonEventHandler(sensorEllipse_MouseRightButtonDown);
GridCanvas.Children.Add(sensorEllipse);
}
编辑
要添加/删除省略号,请检查在GridCanvas\u MouseLeftButtonDown
private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_sensorPoint = Mouse.GetPosition(GridCanvas);
AddSensor();
}
然后为新省略号添加事件处理程序:
void sensorEllipse_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
Ellipse ellipse = sender as Ellipse;
GridCanvas.Children.Remove(ellipse);
}
您可以使用以下任何方法设置位置:
private void AddSensor()
{
Ellipse sensorEllipse = new Ellipse();
SolidColorBrush solidColorBrush = new SolidColorBrush();
solidColorBrush.Color = Color.FromArgb(0, 0, 0, 0);
sensorEllipse.Fill = solidColorBrush;
sensorEllipse.SetValue(Canvas.LeftProperty, _sensorPoint.X);
sensorEllipse.SetValue(Canvas.TopProperty, _sensorPoint.Y);
//Canvas.SetLeft(sensorEllipse, _sensorPoint.X);
//Canvas.SetTop(sensorEllipse, _sensorPoint.Y);
sensorEllipse.StrokeThickness = 2;
sensorEllipse.Stroke = Brushes.Black;
sensorEllipse.Width = 10;
sensorEllipse.Height = 10;
//adding event handler for right mouse down:
sensorEllipse.MouseRightButtonDown += new MouseButtonEventHandler(sensorEllipse_MouseRightButtonDown);
GridCanvas.Children.Add(sensorEllipse);
}
编辑
要添加/删除省略号,请检查在GridCanvas\u MouseLeftButtonDown
private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_sensorPoint = Mouse.GetPosition(GridCanvas);
AddSensor();
}
然后为新省略号添加事件处理程序:
void sensorEllipse_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
Ellipse ellipse = sender as Ellipse;
GridCanvas.Children.Remove(ellipse);
}
检查。鼠标上的点是point类型,我需要将其拆分为两个double,以便使用Canvas.SetLeft()。我需要这样做吗?请检查。鼠标上的点是point类型,我需要将其拆分为两个双精度点,以便使用Canvas.SetLeft()。我需要这样做吗?非常感谢!我将如何从鼠标位置删除它们?是否希望在用户按住鼠标时添加椭圆,并在用户释放鼠标按钮时将其删除?我希望在用户左键单击时添加椭圆(我的代码就是这样做的)并在用户右键单击椭圆时将其删除。查看新添加的椭圆事件处理程序代码。非常感谢!我将如何从鼠标位置删除它们?是否希望在用户按住鼠标时添加椭圆,并在用户释放鼠标按钮时将其删除?我希望在用户左键单击时添加椭圆(我的代码就是这样做的),并在用户右键单击椭圆时将其删除。查看新添加的椭圆事件处理程序的新代码。