C# 我试图将PictureBox动态添加到TableLayoutPanel,但它';s未填充所选单元格
我使用这部分代码来添加图片,但它是单元格的一半…但仍然无法工作C# 我试图将PictureBox动态添加到TableLayoutPanel,但它';s未填充所选单元格,c#,winforms,picturebox,tablelayoutpanel,C#,Winforms,Picturebox,Tablelayoutpanel,我使用这部分代码来添加图片,但它是单元格的一半…但仍然无法工作 PictureBox pB = new PictureBox { Size = MaximumSize, Dock = DockStyle.Fill, BackgroundImageLayout = ImageLayout.Stretch }; OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) {
PictureBox pB = new PictureBox {
Size = MaximumSize,
Dock = DockStyle.Fill,
BackgroundImageLayout = ImageLayout.Stretch
};
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK) {
string path = ofd.FileName;
pB.Image = new Bitmap(path);
}
tableLayoutPanel1.Controls.Add(pB, x-1, y-1);
Control control = tableLayoutPanel1.GetControlFromPosition(x - 1, y - 1);
control.Dock = DockStyle.Fill;
control.BackgroundImageLayout = ImageLayout.Stretch;
您混淆了一个
PictureBox
可以包含的两个图像:
图像是具有各种功能的主要图像
位于其下方,可用于以下用途:背景BackgroundImage
图像的布局
;它被称为
不确定您在何处以及如何设置x
和y
,但您现在应该可以看到完整的图像,尽管或多或少有些拉伸
您不需要在最后再次设置
SizeMode
或Docking
。Dock填充图片盒通常是不正确的。只有当图像是一个细节很少的纹理时,它看起来才有点得体。但是你永远不会使用TableLayoutPanel,你会自己将图像缝合在一起。考虑到你需要的SyMeMod属性已经被设置了。FlowLayoutPanel可能会稍微好一点。
PictureBox pB = new PictureBox
{
Size = MaximumSize,
Dock = DockStyle.Fill,
SizeMode = PictureBoxSizeMode.StretchImage
};