调整大小时保持控件居中的首选方法

5

当父元素的宽度或高度发生变化时,您更喜欢使用什么方法来保持控件在父元素中心位置?

3个回答

7
如果您所说的“居中”是指“它已经在中间,您想保持它的位置而不调整其大小”,那么请删除所有锚点。如果应该调整大小,则gabr的解决方案是可行的 :)

5

将控件的 Anchors 属性设置为 [akLeft, akTop, akRight, akBottom]。


这确实是正确的方法。 - Toon Krijthe
这假设子控件允许调整大小。 - Vegar
是的。另一个答案描述了不调整大小的方法。 - gabr

0

如果您指的是一种“更新,请稍候…”类型的东西,我会在窗体的OnResize事件中手动移动它。这样可以让我在设计过程中将面板放在一边,并且通常隐藏,但需要时我可以使其可见。

procedure TMyForm.FormResize(Sender: TObject);
var
  nNewTop : Integer;
begin
  inherited;
  pnlRegenerating.Left := (ClientWidth - pnlRegenerating.Width) div 2;
  nNewTop := (ClientHeight div 5) {* 4};
  if (nNewTop + pnlRegenerating.Height) > ClientHeight then
    nNewTop := ClientHeight - pnlRegenerating.Height - 4;
  pnlRegenerating.Top := nNewTop;
end;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接