为什么在 Inno Setup 中 WizardStyle=modern 的 BitmapImage 不会调整大小?

问题描述

我已将 BitmapImage 添加wpSelectDir 页面,如下所示:

[Setup]
WizardStyle=modern

[Code]
function CreateBitmapImage(AParent: TWizardPage): TBitmapImage;
begin
  Result := TBitmapImage.Create(WizardForm);
  with Result do
    begin
      Parent := AParent.Surface;
      Bitmap.LoadFromFile(ExpandConstant('{tmp}\LefthandsideImg.bmp'));
      Stretch := True;
      AutoSize := False;
      Center := Center;
      Left := ScaleX(0);
      Top := ScaleY(0); 
    end;
end;

procedure SetSelectDirPageProps;
begin
  biLeftSideImage := CreateBitmapImage(PageFromID(wpSelectDir));
  WizardForm.SelectDirBitmapImage.Left := biLeftSideImage.Left + biLeftSideImage.Width + ScaleX(10);
  WizardForm.SelectDirLabel.Left := WizardForm.SelectDirBitmapImage.Left + WizardForm.SelectDirBitmapImage.Width + ScaleX(12);
  WizardForm.SelectDirLabel.Width := WizardForm.InnerNotebook.Width - WizardForm.SelectDirLabel.Left;
  WizardForm.SelectDirLabel.Autosize := True;
  WizardForm.SelectDirbrowseLabel.Left :=  WizardForm.SelectDirBitmapImage.Left;
  WizardForm.SelectDirbrowseLabel.Width := WizardForm.InnerNotebook.Width - WizardForm.SelectDirbrowseLabel.Left;
  WizardForm.SelectDirbrowseLabel.Autosize := True;
  WizardForm.DirEdit.Left :=  WizardForm.SelectDirBitmapImage.Left;
  WizardForm.DirEdit.Width := WizardForm.DirEdit.Width - ScaleX(150);
  WizardForm.DirbrowseButton.Left :=  WizardForm.DirEdit.Left + WizardForm.DirEdit.Width + ScaleX(10);
  WizardForm.diskSpaceLabel.Left := WizardForm.DirEdit.Left;
  WizardForm.diskSpaceLabel.Width := WizardForm.InnerNotebook.Width - WizardForm.diskSpaceLabel.Left;
  WizardForm.diskSpaceLabel.Top := WizardForm.InnerNotebook.Height - 2 *  WizardForm.diskSpaceLabel.Height;
  WizardForm.diskSpaceLabel.Autosize := True; 
end;

procedure InitializeWizard;
begin
  SetSelectDirPageProps;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
    wpSelectDir:
      begin
        biLeftSideImage.Visible := True;
        WizardForm.InnerNotebook.Left := ScaleX(10);      
        WizardForm.InnerNotebook.Width:= INNER_NOTEBOOK_WIDTH + 2 * INNER_NOTEBOOK_LEFT - WizardForm.InnerNotebook.Left;  
        WizardForm.InnerNotebook.Top := WizardForm.MainPanel.Top + WizardForm.MainPanel.Height + ScaleY(10);  
      end
    else
      begin
        biLeftSideImage.Visible := False;
        WizardForm.InnerNotebook.Left := INNER_NOTEBOOK_LEFT;
        WizardForm.InnerNotebook.Width := INNER_NOTEBOOK_WIDTH;
        WizardForm.InnerNotebook.Top := INNER_NOTEBOOK_TOP;
      end; 
  end;
end;

对于 wpWelcome 页面BitmapImage 的大小已正确调整:

enter image description here

但是对于 wpSelectDir 页面,它看起来像这样:

enter image description here

我也尝试将 Autosize 设置为 True,但没有任何改变。

在这里做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)