Delphi 缩放后如何使TLayout居中

Delphi 缩放后如何使TLayout居中,delphi,scale,firemonkey,Delphi,Scale,Firemonkey,我有一个MyFrame(TFrame),它包含一个Align=Center的MyLayout(TLayout)。 我使用MyFrame.Scale缩小/放大我的布局及其内容。缩放效果很好。缩放后如何在MyFrame中以视觉方式将我的布局居中 您可以将布局放在TGridPanelLayout中: MyLayout.Position.X := (Self.Width - MyLayout.Width*newScale.X)/2; MyLayout.Position.Y := (Self.Height

我有一个MyFrame(TFrame),它包含一个Align=Center的MyLayout(TLayout)。
我使用MyFrame.Scale缩小/放大我的布局及其内容。缩放效果很好。缩放后如何在MyFrame中以视觉方式将我的布局居中

您可以将布局放在TGridPanelLayout中:

MyLayout.Position.X := (Self.Width - MyLayout.Width*newScale.X)/2;
MyLayout.Position.Y := (Self.Height - MyLayout.Height*newScale.Y)/2;

如果网格有4行4列,则可以将布局放在[1,1]单元中,其中RowSpan=2和ColumnSpan=2,并将TGridPanelLayout和MyLayout的Align属性更改为Client。然后,您的布局将始终居中。

在设计时间更改比例时,我的布局位置将自动更正。