我正在尝试从鼠标位置向网格添加椭圆。如何定义绘制椭圆的位置?
这是我的鼠标按下事件:
private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_sensorPoint = Mouse.GetPosition(GridCanvas);
AddSensor();
}
我的AddSensor()方法:
private void AddSensor()
{
Ellipse sensorEllipse = new Ellipse();
SolidColorBrush solidColorBrush = new SolidColorBrush();
solidColorBrush.Color = Color.FromArgb(0, 0, 0, 0);
sensorEllipse.Fill = solidColorBrush;
sensorEllipse.StrokeThickness = 2;
sensorEllipse.Stroke = Brushes.Black;
sensorEllipse.Width = 10;
sensorEllipse.Height = 10;
GridCanvas.Children.Add(sensorEllipse);
}
如何在画布上单击鼠标的位置添加sensorEllipse?
答案 0 :(得分:1)
您可以使用以下任何方法设置位置:
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_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);
}