首页 > 其他 > 详细

polyLine画折返线时绘图出头的问题

时间:2015-04-19 16:01:44      阅读:219      评论:0      收藏:0      [点我收藏+]

---恢复内容开始---

用polyline画线的时候需要折返几次,结果出现了以下问题:

技术分享 技术分享 

显然,线宽越大,露头越多,代码如下:

        // xaml里面加个mainCanvas就行了
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Polyline polyLine = new Polyline() {
                Stroke = new SolidColorBrush(Colors.Black),
                StrokeThickness = 6,//线宽
            };
            polyLine.Points.Add(new Point(0,0));//正方形咯
            polyLine.Points.Add(new Point(100, 0));
            polyLine.Points.Add(new Point(100, 100));
            polyLine.Points.Add(new Point(0, 100));
            polyLine.Points.Add(new Point(0, 0));//end

            polyLine.Points.Add(new Point(100, 0));//折返
            polyLine.Points.Add(new Point(0, 0));

            Canvas.SetLeft(polyLine,100);
            Canvas.SetTop(polyLine, 100);
            mainCanvas.Children.Add(polyLine);
        }
一开始以为是StrokeStartLineCap和StrokeEndLineCap的问题,就设置了一下,结果毫无反应。
注意到,有个StrokeMiterLimit属性,查了下,msdn的解释是这样的:(抱歉我是没看懂,机翻水平始终是那么低)

技术分享

备注里面解释了原因:

技术分享

通俗地说就是两个直线如果形成锐角就会露头,测试一下:

技术分享 

看不出来。。。

加宽线粗在看一下:

技术分享

验证成功。

so...结论就是:小于90度时,加个StrokeMiterLimit = 1.0;//最小就是1.0了,就可以不路露头了。

polyLine画折返线时绘图出头的问题

原文:http://www.cnblogs.com/sczhi/p/4439185.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!