Point p = e.GetPosition(canvas);
double x = p.X;
double y = p.Y;
Ellipse ellipes = new Ellipse();
ellipes.Height = 50;
ellipes.Width = 50;
ellipes.Fill = Brushes.LightBlue;
ellipes.Margin = new Thickness(x - 25, y - 25, 0, 0);
canvas.Children.Add(ellipes);
目的是点击鼠标时以点击位置为圆心画圆,当canvas为容器时能达到目标
用Grid不行 为什么?
Grid当然能做图形容器了,只不过对子控件布局的方式和canvas不大一样罢了。就你当前的这个需求的话,把
Ellipse ellipes = new Ellipse();
改成
Ellipse ellipes = new Ellipse() { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top };
就可以实现以鼠标点击位置为圆心画图了。
不过,就算不改,应该也不是画不出来,而是圆心位置和canvas的不大一样罢了,不知道你的问题是啥现象。
圆心位置在鼠标的右下方,离得很远