如何在缩放后居中TLayout

时间:2017-01-16 21:02:49

标签: delphi scale firemonkey

我有一个MyFrame(TFrame),其中包含一个带有Align = Center的MyLayout(TLayout)。 我使用MyFrame.Scale来缩小/放大MyLayout及其内容。缩放工作正常。有关如何在缩放后如何在MyFrame中以可视方式居中MyLayout的想法?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以将布局放在TGridPanelLayout中:http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Layouts.TGridPanelLayout

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