property Anchors: TAnchors; // published, default [akLeft, akTop]
Anchors 是 Align 的替代方案,它可以对 PDF 查看器跟随父容器的方式提供像素级精度控制。集合中的每个元素(akLeft、akTop、akRight、akBottom)都会把查看器的对应边缘锁定到父容器的同一边缘上,如果相对的两边都被锚定,父容器调整大小时查看器会拉伸;如果只锚定一边,查看器则保持尺寸并平移
在固定宽度的检查器窗格或向导步骤中,PDF 阅读器最常见的布局是 [akLeft, akTop, akRight, akBottom],它在功能上等同于 alClient,但会保留设计期边界矩形,并允许你在查看器周围嵌套其他控件而不会产生 z-order 意外
每当某个锚点导致查看器变大或变小时,继承而来的 resize 处理程序都会重新计算滚动区域;如果当前 FitMode 不为 pfmNone,系统会重新应用它,以便页面内容继续与视口保持相同的视觉关系
Anchors 和 Align 在同一个控件上是互斥的。将 Align 设为 alNone 之外的任何值都会在运行时覆盖锚点Constraints.MinWidth / MinHeight 可以让视口保持可用OnResize,因此在该事件中启动的任何自定义滚动条联动或缩放计算都会继续运行
// 将查看器锁定到其父面板的四个边缘
procedure TForm1.ConfigureViewer;
begin
PdfView1.Parent := PanelMain;
PdfView1.Align := alNone;
PdfView1.SetBounds(8, 8, PanelMain.ClientWidth - 16,
PanelMain.ClientHeight - 16);
PdfView1.Anchors := [akLeft, akTop, akRight, akBottom];
PdfView1.Constraints.MinWidth := 320;
PdfView1.Constraints.MinHeight := 240;
end;