Reputation: 425
I am trying to add an ellipse to my grid from my mouse position. How can I define where the ellipse is drawn?
here is my mouse down event:
private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_sensorPoint = Mouse.GetPosition(GridCanvas);
AddSensor();
}
And my AddSensor() method:
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);
}
How can I add sensorEllipse where the mouse is clicked on the canvas?
Upvotes: 1
Views: 2350
Reputation: 10376
You can set position with any of those methods:
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);
}
EDIT
For adding/deleting ellipses check, which mouse button was pressed at GridCanvas_MouseLeftButtonDown
private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_sensorPoint = Mouse.GetPosition(GridCanvas);
AddSensor();
}
Then add event handler for new ellipses:
void sensorEllipse_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
Ellipse ellipse = sender as Ellipse;
GridCanvas.Children.Remove(ellipse);
}
Upvotes: 1