在C#中为同一图像源添加多个Picturebox

时间:2013-12-20 17:11:50

标签: c# .net picturebox

在我的应用程序中,我有超过60个图片框,其中相同的图像源添加到面板。

代码示例

class MainForm : Form{
   private Image image = (Image)Resources.myImage;

   public MainForm(){
      InitializeComponent();
      initAddImages();
   }

   private void initAddImages(){
       for (int i = 0; i < 10; i++)
            for (int j = 0; j < 8; j++){
                PictureBox p = new PictureBox();
                p.Image = image;
                p.SizeMode = PictureBoxSizeMode.Zoom;

                //"ImagePanel" is a TableLayoutPanel
                imagePanel.Controls.Add(p, i, j);
            }
   }

   private void changeImage(){
      image = (Image)Resources.anotherImage;
   }
}

问题/问题:

  1. 图片框渲染有点慢。 (我已经有了一个小的图像分辨率)。由于应用程序可以调整大小,因此每次调整表单大小时都需要调整图像大小。我猜测渲染这种缓慢背后的原因是因为需要为单个图片框计算图像大小。有没有办法调整图像大小一次并强制所有图片框使用这个调整大小的图像?

  2. 是否可以将图像对象引用传递给所有图片框对象,因此当我更改图像资源引用时(通过调用例如“changeImage”),所有图片框都将使用新图像“anotherImage”进行渲染?

  3. 提前致谢...

0 个答案:

没有答案