gpt4 book ai didi

c# - 如果 PictureBox 小于 Picture,则使 Image 适应 PictureBox

转载 作者:行者123 更新时间:2023-11-30 20:32:34 26 4
gpt4 key购买 nike

我有一个 PictureBox可以有多种不同的大小(取决于屏幕分辨率、窗口状态等)。我想要适合我的 imagePictureBoximage 中的任何一个尺寸(宽度或高度)低于 PictureBox 的相应尺寸.

示例: 如果 image 的宽度大于 PictureBox 的, 但是 image 的高度小于 PictureBox 的, 它将调整 image 的大小宽度直到等于 PictureBox 的宽度, 保持原来的宽高比,并将 image 居中垂直。

如果PictureBox大于image尺寸,那么图像只是居中。我用 PictureBoxSizeMode.AutoSize 完成的那部分和一些代码使 image 居中基于 image 的大小和 PictureBox .

picbx.ImageLocation = "Image path here";
picbx.SizeMode = PictureBoxSizeMode.AutoSize;
picbx.Anchor = AnchorStyles.None;
picbx.Location = new Point((picbx.Parent.ClientSize.Width / 2) - (picImage.Width / 2),
(picbx.Parent.ClientSize.Height / 2) - (picImage.Height / 2));
picbx.Refresh();

我现在不需要考虑的一件事是调整大小。该窗口不允许调整大小,并且无需考虑初始加载以外的任何其他情况。

我发现许多帖子似乎很接近,但没有一个能完全发挥作用。 Stretch 扭曲了 image , AutoSize 不会根据容器大小调整大小,Zoom 可能在 image 时正常工作大于 PictureBox但我还没有找到一种方法来防止缩放增加 image尺寸适合 PictureBox .

因为我将其设置为 picbx.ImageLocation并且不设置 picbx.Image属性,我还没有找到调整 image 大小的方法在PictureBox里面基于需要作为调整大小引用的尺寸(宽度或高度)。

最佳答案

如果您知道 PictureBoxImage 大小,您可以简单地设置适当的 SizeMode - Zoom图像的宽度或高度大于图片框,CenterImage 否则:

var imageSize = picbx.Image.Size;
var fitSize = picbx.ClientSize;
picbx.SizeMode = imageSize.Width > fitSize.Width || imageSize.Height > fitSize.Height ?
PictureBoxSizeMode.Zoom : PictureBoxSizeMode.CenterImage;

关于c# - 如果 PictureBox 小于 Picture,则使 Image 适应 PictureBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com