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