锚点:= [akCenter]?
Posted
技术标签:
【中文标题】锚点:= [akCenter]?【英文标题】:Anchors := [akCenter]? 【发布时间】:2012-09-18 19:55:18 【问题描述】:如何在其父控件中居中?以及如何在父级调整大小时保持居中?
我知道我可以编写一个Parent.OnResize
事件处理程序来手动移动控件,但并非所有容器组件都有OnResize
事件,我想自动执行此操作。
有akCenter
锚点吗?
【问题讨论】:
在 OnResize 事件中改变布局会导致闪烁。我们需要在表单重绘之前重新计算布局。 【参考方案1】:锚akCenter
不存在。但是您可以通过将 anchors 属性设置为空来模仿 akRelative
,这会在父级调整大小时导致控件的相对移动。将其与居中放置相结合将产生类似居中的“锚点”。
在设计时水平居中:
在 IDE 中,选择控件的上下文菜单(右键单击), 位置 > 对齐 > 水平 > 在窗口中居中, 在对象检查器中设置Anchors.akLeft := False
、Anchors.akRight := False
,
等等:akHorzCenter
。
垂直也是如此,在这种情况下,您将 akTop
和 akBottom
设置为 false。双向居中:Anchors := []
。
免责声明:我没有找到有关此锚点用法的文档,也不知道这是否是预期的功能,但它在 D7 和 XE2 中都非常好用。
【讨论】:
+1 这很好,感谢您教给我一些我不知道的新知识。以上是关于锚点:= [akCenter]?的主要内容,如果未能解决你的问题,请参考以下文章