使用C#开发桌面应用程序  可以实现图片的缩率图浏览  点击小图后可以显示大的图实现类似ACDSEE那样的功能  这个是怎么实现的?怎么实现的同时显示10多个的缩率图的?在一个什么样的容器内装载的缩率图?

解决方案 »

  1.   

    使用SPY查看 ACDSEE中使用的是SYSLISTVIEW32控件?是这样的吗? 怎么具体使用SYSLISTVIEW32来实现ACDSEE那样的功能呢?
      

  2.   

    直接使用System.Drawing即可實現,參考如下代碼            System.Drawing.Image source=Image.FromFile("c:\\a.jpg");
                System.Drawing.Image newimage=new Bitmap(b,10,10);
                PictureBox PictureBox1;
                PictureBox1.Image = newimage;
      

  3.   

    至於容器,使用panel都可以的,自己排列
      

  4.   


    按照楼上几位的说法就可以实现类似acdsee的界面吗我去尝试一下
      

  5.   


    可以举个例子吗才开始接触C#,  不很清楚如何实现黑马王子所说的如何在PANEL中动态创建若干个PICTUREBOX控件?若干个控件如何进行位置的控制呢?
      

  6.   

    2楼的代码只是绘制一个图象文件,并不能算是真正的缩略图功能,首先图象的放大缩小的实现就很麻烦,就算重绘来改变显示大小,其性能就无法保证
    微软提供了一个获取图象缩略图的方法,效率还可以public Image GetThumbnailImage (
        int thumbWidth,
        int thumbHeight,
        GetThumbnailImageAbort callback,
        IntPtr callbackData
    )具体说明与例子见这里 http://msdn2.microsoft.com/zh-cn/library/system.drawing.image.getthumbnailimage(VS.80).aspx关于容器,其实使用Panel空控件不见得好用,建议自己绘制,具体方法就要你自己找了
      

  7.   

    至于在Panel中动态建立PictureBox控件,就简单了,只需要new一个PictureBox控件,然后Panel.Controls.Add就可以加进去了,再设置一下大小和位置就OK了,不过如果你想做成acdsee那样的显示的的话,还要考虑加载和显示的顺序和事件等问题,当用户一下打开一万甚至两万个图象,而且每个图象还挺大,你怎么办?一下都读入并显示?不现实,最起码也要做到只显示用户界面上能显示的到那十几副图象,当用户想下拖动滚动条或翻页的时候再加载需要加载的部分,总之是要一些技巧的。