DommyCastles
DommyCastles

Reputation: 425

Adding an ellipse to mouse position?

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

Answers (1)

JleruOHeP
JleruOHeP

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

Related Questions