在椭圆位置添加椭圆?

时间:2012-08-16 06:31:46

标签: c# wpf

我正在尝试从鼠标位置向网格添加椭圆。如何定义绘制椭圆的位置?

这是我的鼠标按下事件:

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?

1 个答案:

答案 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);
    }