首页 > 解决方案 > 使随机标签位置适应窗口大小的最有效方法是什么?

问题描述

我有一个以表单上的 X 坐标为中心的标签,我试图让它在表单调整大小时调整它的位置。因此,我正在处理 Resize 事件以更新标签 Location 属性。

private void SecondaryWindow_Resize(object sender, EventArgs e)
{
    lblStartPointX = this.Width / 2 - lblSecondary1.Width / 2;
    lblStartPointY = lblSecondary1.Location.Y;
    lblSecondary1.Location = new Point(lblStartPointX, lblStartPointY);
}

看来我不能直接为 lblSecondary1.Location.X 属性赋值(编译器认为这是一个错误),所以我想出了这段代码。

但它让我觉得完成任务的方法不是很有效......如果你不断调整窗口大小,会创建多少点对象,我想知道吗?

标签: c#winforms

解决方案


有多种方式。我建议使用 WPF 代替响应式设计。

当 Label 是唯一的控件时,您可以打开 Autosize,将锚点设置为所有边,将 TextAlgin 设置为 Center 并调整 Label 的大小,这样它就占据了整个空间。

另一种方法是使用 TableLayoutPanels。需要一些时间来适应它,但它接近 WPF 的网格。


推荐阅读