wpf 在canvas绘制圆,怎么绘制出的圆不同心,在放大后可以明显看出,求帮助

Canvas_canvas=newCanvas();Ellipseellipse=newEllipse();ellipse.Fill=fillColor;ellipse.... Canvas _canvas = new Canvas();
Ellipse ellipse = new Ellipse();
ellipse.Fill = fillColor;
ellipse.StrokeThickness = lineWidth;
ellipse.Stroke = lineColor;
ellipse.Width = (double)width;
ellipse.Height = (double)height;
//椭圆对象相对于父容器对象Canvas的位置,左边距、上边距
Canvas.SetLeft(ellipse, 0);
Canvas.SetTop(ellipse, 0);
_canvas.Children.Add(ellipse);
ellipse = new Ellipse();//定义椭圆对象
//属性设置,填充颜色、边粗细、边颜色、宽、高等
ellipse.Fill = System.Windows.Media.Brushes.Transparent;
ellipse.StrokeThickness = 1;
ellipse.Stroke = lineColor; //边,金黄色
ellipse.Width = (double)width * 2 / 4;
ellipse.Height = (double)height * 2 / 4;
//椭圆对象相对于父容器对象Canvas的位置,左边距、上边距
Canvas.SetLeft(ellipse, (double)width / 4 );
Canvas.SetTop(ellipse, (double)height / 4 );
_canvas.Children.Add(ellipse);

从代码看明明应该是同心圆啊,谁能帮我改改或者使用其他方法来绘制,要求最后必须是同心圆,不管放大还是缩小不能有偏移
展开
 我来答
阳光的雷咩咩
2015-12-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7795万
展开全部

我试了下,是同心圆啊。不知道你说的放大缩小是什么操作?我代码里width和height是相等的,_canvas直接添加到窗口里,你的是不是?

追问
当你的width和height都较小时,通过scaleTransform放大可以看出不规则,我现在的做法是通过先让长宽都放大10倍,等绘制好图形后再缩小10倍,才比较规则。
追答
放大的原点不在圆心?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式