c# - Windows 窗体 : Obtain window size to fit a picture box containing an image

标签 c# winforms resize window picturebox

我有一个 Form,它包含一个 Panel(固定在所有四个边上),其中包含一个 PictureBox(也固定在所有四个边上) Panel 的),在 Panel 上方有一个 LabelPanelAutoScroll 设置为 true,PictureBox 包含未缩放的图像并将 SizeMode 设置为 AutoSize,因此如果 PictureBox/Form 尺寸不允许整个图像(正如我想要的那样),则图像永远不会重新缩放并自动出现滚动条).

问题:如何在 Form 的 Load 事件处理程序中确定初始窗口大小,以便窗口完全适合图像,而 PictureBox 中没有滚动条? PictureBox 的 Image 属性已经在构造函数中设置。

然后我会(如果窗口不是太大)将初始窗口大小设置为该大小,并将窗口调整大小限制为该大小的最大值。

非常感谢。

最佳答案

您可以尝试在设计器中设置一个 MaximumSize,然后在表单加载时执行此检查:

Image i = Image.FromFile("");

if (i.Width > this.MaximumSize.Width)
    this.Width = MaximumSize.Width;
else
    this.Width = i.Width;

if (i.Height > this.MaximumSize.Height)
    this.Height = MaximumSize.Height;
else
    this.Height = i.Height;

pbImage.Image = i;

如果您不知道您想要的最大尺寸是多少,那么您可以使用以下方法将其基于屏幕尺寸:

Screen.PrimaryScreen.Bounds

编辑:

正如 Hans Passant 在评论中指出的那样:“只需将表单的 AutoSize 属性设置为 True,它就会自动增长以适应自动调整大小的图片框”

这连同设置表单的 MaximumSize 应该适合您。

关于c# - Windows 窗体 : Obtain window size to fit a picture box containing an image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31629684/

相关文章:

c# - 如何 reshape 形态?

java - WinForms 中有哪些轻量级/重量级组件?

c++ - 如何使用按钮在表单之间导航?

java - 为什么这个 GIF 在使用 Java ImageIO 调整大小时最终变成黑色方 block

javascript - 有没有办法在c3js上覆盖c3_chart_internal_fn.generateResize?

c# - C#中如何判断键盘或鼠标是否在一段时间内没有输入

c# - NetTcpBinding() 与 TransferMode.Streamed

c# - 如何使用反射获取 Func<T> 的返回类型?

c# - 如何从我的 C# 代码运行 EXE 文件?

针对不同 mime 类型调整 PHP 图像大小