Inno Setup 根据屏幕 DPI 正确定位标签

Inno Setup correctly position a label with respect to screen DPI

我试图在 InfoAfterPage 部分上方放置一个标签,并且无论使用何种缩放比例,它都始终出现在那里,就像下面显示的 space 所需的数量一样。

我正在使用 Label.Top := WizardForm.InfoAfterPage.Height - 20,但我知道如果以任何方式缩放屏幕,可能会显得不合适。最好的设置方法是什么,以便无论屏幕如何缩放都始终保持在这个位置?

使用ScaleY support function:

Label.Top := WizardForm.InfoAfterPage.Height - ScaleY(20);

甚至更好,甚至不对标签高度做出假设:

Label.Top := WizardForm.InfoAfterPage.Height - ScaleY(7) - Label.Height;

或者对于您的具体情况,只需重复使用 ComponentsDiskSpaceLabel:

的位置
Label.Top := WizardForm.ComponentsDiskSpaceLabel.Top;

请注意 ComponentsDiskSpaceLabel 在向导的生命周期内存在,因此您可以随时访问它。