宝帅哥 2022-04-06 14:00 采纳率: 50%
浏览 80
已结题

C#利用pictureBox绘制类似chart控件,缩放没有chart控件流畅

问题:利用pictureBox绘制类似chart控件时(如下图),需要对pictrueBox控件进行缩放时,利用自定义比例(缩放比例)手动缩放pictureBox然后重新绘制图片时会比使用chart控件卡。为什么?
控件使用:折线图表pictureBox控件、坐标label控件、利用坐标绘制image显示到pictureBox控件上面。
自己理解:绘制东西太多,绘制随窗口缩放时,速度跟不上。不使用chart控件情况下,可以怎么优化呢?

img

        public void updataTabel(Chart chart, Point po)  //Chart为自定义的类,用于保存绘制坐标位置那些东西
        {
            chart.myImage.RotateFlip(RotateFlipType.Rotate180FlipXY);   //上下翻转,用于正向绘制
            chart.g.Clear(Color.FloralWhite);        //背景图片or颜色
            //chart.g.DrawImage(bitmap, chart.po_move_Origin.X,chart.po_move_Origin.Y,chart.new_size.Width,chart.new_size.Height);
            drawAxis( chart,  po);          //画轴线(X、Y)
            drawMousePosition( chart);      //显示鼠标坐标
            if (labels_updata)              //label(坐标)刷新
            {
                label_x_Move(chart);
                label_y_Move(chart);
                labels_updata = false;
            }
            if (true)                       //数据绘制
            {
                draw_datalist(chart);
            }
            //灰色背景
            chart.g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Gray)), chart.po_move_Origin.X, chart.po_move_Origin.Y, chart.new_size.Width, chart.new_size.Height / 2);
            chart.g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Gray)), chart.po_move_Origin.X, chart.po_move_Origin.Y, chart.new_size.Width, chart.new_size.Height / 4);
            chart.g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Gray)), chart.po_move_Origin.X, chart.po_move_Origin.Y, chart.new_size.Width, chart.new_size.Height * 3 / 4);
            chart.g.DrawRectangle(chart.pen1, chart.r1);        //画外边框

            chart.myImage.RotateFlip(RotateFlipType.Rotate180FlipXY);
            chart.pictureBox.Image = chart.myImage;

        }

  • 写回答

2条回答 默认 最新

  • xuzuning 2022-04-06 17:11
    关注

    mschart 是 c 语言写的, c# 想在速度上超过他是不可能的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月6日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!