【发布时间】:2016-11-01 12:43:09
【问题描述】:
我有一个 WinForms 面板,其中包含两个项目,例如。标签。
我需要以不同的方式水平对齐它们,假设 Label1 需要对齐到面板的中心,而 Label2 需要对齐到面板的右侧。调整大小时必须保留对齐方式。
我应该使用什么面板?控制板?流布局面板?还要别的吗? 我应该如何设置面板/标签的属性以实现上述排列?
【问题讨论】:
-
调整大小前最好分享一张图片,调整大小后分享一张图片,这样需求会更清晰。也许只是使用
Anchor的一些属性设置,也许你需要一些事件处理代码。 -
标签可以自行完成,无需面板帮助。使用它的 Anchor 属性。使用 Top + Right 使其保持与右侧对齐。居中需要更多工作:使用 AutoSize = False,TextAlign = TopCenter,将标签定位在中心,Anchor = Left + Top + Right。
-
@Hans Passant:它几乎可以满足我的需要。仅当调整大小意味着增加宽度时,您的指令“将标签定位在中心”就足够了。对于减小宽度的工作解决方案,需要将“将标签定位在中心”替换为“将标签的宽度拉伸到封闭面板的边缘(是的,通过 label2 拉伸右侧)”。在后一种情况下,还必须注意 z 顺序以避免隐藏 label2。