我在一个可调整大小的表单上有一个TImage,当我调整该表单的大小时,我希望它能够调整大小。
我试过的是:
在一个options
Anchors TImage,然后在表单的OnResize事件
F 215中将面板和图像对齐设置为alClient
Width和Height这些都不起作用。
这是默认的表单大小。每当左边的任何参数发生变化,或者图像被放大/移出时(使用鼠标滚轮),TImage都会被重新绘制。在每次重绘时,模式都会重复,直到填充完整的TImage。

这是调整大小后的表单。注意,图像大小保持不变。

启用Stretch属性确实有效,但它也可以缩放图像的内容,这是我不想要的。
我怎么才能解决这个问题?
我在德尔菲10.3
发布于 2021-09-07 05:03:25
重读你的描述,我发现了问题所在。
当图像尺寸发生变化时,如果拉伸停止,内部图像不会改变其大小。您必须手动修改内部位图大小:
Image2.Picture.Bitmap.Width := Image2.Width;
Image2.Picture.Bitmap.Height := Image2.Height;
//now diagonal is drawn properly
Image2.Canvas.MoveTo(0, 0);
Image2.Canvas.LineTo(Image2.Width, Image2.Height);https://stackoverflow.com/questions/69081695
复制相似问题