winform程序中, 窗口中放置一picturebox, 其中属性SizeMode的值设置为AutoSize, 想让picture的大小跟着图像的尺寸变化而变化,但是这个时候问题出来了当图像缩放到一定程度后, 或者直接加载大图像时, 就会出现System.outofmemory的异常
有哪位高手解决过类似的问题, 请指点一二。 做过地图的兄弟姐妹们帮帮忙吧

解决方案 »

  1.   

    貌似看图软件都是自己定义显示区域和滚动条,还有内存管理的。
    你可以尝试往 panel 上GDI+画,不要用那控件
      

  2.   

    哦, 这样呀。 因为我的图像大小比较大, 直接在panel上用GDI+画图的话, 由于遮挡等原因, 经常涉及到重绘的问题, 处理起来比较麻烦, 所以想直接用picturebox能省很多事
      

  3.   

    绑定图片前判断图片大小.
    或者换wpf试试看
      

  4.   

    picturebox就算了
    子类化UserControl,然后根据size进行OnPaint
      

  5.   

        public static Image GetPicBySize(Image image,int w,int h) 
            {
                Bitmap thumb = new Bitmap(w, h);
                using (Graphics g_thumb = Graphics.FromImage(thumb))
                {
                    g_thumb.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    g_thumb.DrawImage(image, 0, 0, w, h);
                }
                return (Image)thumb;
            }
      

  6.   

    你是怎么加载的?直接用 DrawImage 应该不会有问题。