繁体   English   中英

我正在尝试将PictureBox动态添加到TableLayoutPanel,但未填充所选单元格

[英]I am trying to add a PictureBox dynamically to a TableLayoutPanel but it's not filling the selected cell

我使用这部分代码来添加图片,但是它只是单元格的一半……仍然无法正常工作。

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可以具有的两个图像:

  • Image是具有各种功能的主要Image
  • 它下面的BackgroundImage可以用于以下用途:背景。

您想要设置Image的布局; 它称为SizeMode

PictureBox pB = new PictureBox
{
    Size = MaximumSize,
    Dock = DockStyle.Fill,
    SizeMode = PictureBoxSizeMode.StretchImage
};

不知道在何处以及如何设置xy但是您现在应该可以看到完整的图像,尽管它或多或少都被拉伸了。

并且您无需在末尾再次设置SizeModeDocking

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM