如何绕过C#面板的最大大小限制
本文关键字:何绕过 | 更新日期: 2023-09-27 18:25:10
我正在尝试在Panel控件中显示图像(我使用的是WinForms),但是图像大于面板的最大大小(32767像素)。
我在互联网上搜索了这个问题,但我只找到了一些现成的解决方案,我不理解,因此不想使用它们
除了使用WPF之外,还有什么好的方法来解决这个问题?
到目前为止,我正在考虑手动迭代Panel中的控件,并根据需要更改它们的位置,然而,我认为这不会非常高效和丑陋。
重现问题的示例代码:
for (int i = 0; i < 300; i++) {
PictureBox picbox = new PictureBox();
picbox.BackColor = Color.Red;
picbox.Width = 500;
picbox.Height = 250;
picbox.Top = i * 500;
panelDisplay.Controls.Add(picbox);
}
听起来你可能会尝试使用多个面板。
非常粗略:
// (5 of these) x (60 pictureboxes in each) = 300 images in all:
for (int panelNumber = 0; panelNumber < 5; panelNumber++) {
Panel panel = new Panel();
panel.Height = 30000;
panel.Top = panelNumber * 30000;
// ...anything else needed to set up the panel...
for (int PictureBoxNr = 0; PictureBoxNr< 60; PictureBoxNr++) {
PictureBox picbox = new PictureBox();
picbox.BackColor = Color.Red;
picbox.Width = 500;
picbox.Height = 250;
picbox.Top = PictureBoxNr * 500;
panel.Controls.Add(picbox);
}
outerPanel.Controls.Add(panel);
}