我认为这在 Inno Setup 中是不可能的。也许是一些 Inno Setup 克隆。
问题是Inno Setup中的所有标签都是
TStaticText
,不透明。所以你必须全部替换为TLabel
。而且有很多。它们由 Inno Setup 管理。因此,您必须以某种方式不断将新的 TStaticText
更新为 Inno Setup 设置为原始 TLabel
的值。甚至可能根本不可能。
所以实际上,可以创建一个像您的问题一样的页面。但这只是因为没有标准的 Inno Setup 标签。但你无法隐藏所有这些。
procedure InitializeWizard();
var
BackImage: TBitmapImage;
begin
{ Hide top panel }
WizardForm.MainPanel.Visible := False;
{ Adjust "select dir" page controls for a stretched inner page size }
WizardForm.DirEdit.Left :=
WizardForm.DirEdit.Left + WizardForm.InnerNotebook.Left;
WizardForm.DirEdit.Top := WizardForm.DirEdit.Top + WizardForm.InnerNotebook.Top;
WizardForm.DirBrowseButton.Left :=
WizardForm.DirBrowseButton.Left + WizardForm.InnerNotebook.Left;
WizardForm.DirBrowseButton.Top :=
WizardForm.DirBrowseButton.Top + WizardForm.InnerNotebook.Top;
{ Hide non-transparent labels }
WizardForm.DiskSpaceLabel.Visible := False;
WizardForm.SelectDirBrowseLabel.Visible := False;
WizardForm.SelectDirLabel.Visible := False;
{ Stretch the outer page across whole form }
WizardForm.OuterNotebook.Width := WizardForm.ClientWidth;
WizardForm.OuterNotebook.Height := WizardForm.ClientHeight;
{ Stretch the inner page across whole outer page }
WizardForm.InnerNotebook.Left := 0;
WizardForm.InnerNotebook.Top := 0;
WizardForm.InnerNotebook.Width := WizardForm.OuterNotebook.ClientWidth;
WizardForm.InnerNotebook.Height := WizardForm.OuterNotebook.ClientHeight;
{ Put buttons on top of the page (image) }
WizardForm.BackButton.BringToFront()
WizardForm.NextButton.BringToFront();
WizardForm.CancelButton.BringToFront();
{ Add a background image }
BackImage := TBitmapImage.Create(WizardForm);
BackImage.Parent := WizardForm.SelectDirPage;
BackImage.Top := 0;
BackImage.Left := 0;
{ ... }
BackImage.Bitmap.LoadFromFile(...);
end;
类似问题:
也许你可以尝试专门为此目的设计的图形安装程序 for Inno Setup。
有了它,您可以创建看起来很酷的安装程序,并且它们支持更改背景(这张图片来自《Shadow Tactics》游戏的上一个项目)mod:
我是这个项目(商业)的开发人员,所以如果您需要更多信息,请随时询问。