Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为同一图像源在C中添加多个PictureBoxe_C#_.net_Picturebox - Fatal编程技术网

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

C# 为同一图像源在C中添加多个PictureBoxe,c#,.net,picturebox,C#,.net,Picturebox,在我的应用程序中,我在一个面板中添加了60多个具有相同图像源的图片盒 代码示例 问题: PictureBoxs渲染有点慢。我已经有了一个小的图像分辨率。由于应用程序是可重新调整大小的,因此每次我调整窗体大小时都需要调整图像的大小。我猜渲染速度缓慢背后的原因是因为需要为任何单个picturebox计算图像大小。是否有办法一次性调整图像大小并强制所有PictureBoxe使用此调整大小的图像 是否可以将图像对象引用传递给所有pictureboxes对象,这样当我通过调用例如changeImage来更

在我的应用程序中,我在一个面板中添加了60多个具有相同图像源的图片盒

代码示例

问题:

PictureBoxs渲染有点慢。我已经有了一个小的图像分辨率。由于应用程序是可重新调整大小的,因此每次我调整窗体大小时都需要调整图像的大小。我猜渲染速度缓慢背后的原因是因为需要为任何单个picturebox计算图像大小。是否有办法一次性调整图像大小并强制所有PictureBoxe使用此调整大小的图像

是否可以将图像对象引用传递给所有pictureboxes对象,这样当我通过调用例如changeImage来更改图像资源引用时,所有pictureboxes都将使用新图像另一个图像进行渲染


提前感谢…

尝试设置第一个图片框,然后每次设置pb.Image.clone如果在多个位置使用同一资源对象,请小心。我以前遇到过这样的问题:在viewmodel中的两个不同位置上使用相同的图像资源对象会导致一个对象消失,除非每次出现都有一个单独的对象。
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;
   }
}