c# - 使随机标签位置适应窗口大小的最有效方法是什么?
问题描述
我有一个以表单上的 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 属性赋值(编译器认为这是一个错误),所以我想出了这段代码。
但它让我觉得完成任务的方法不是很有效......如果你不断调整窗口大小,会创建多少点对象,我想知道吗?
解决方案
有多种方式。我建议使用 WPF 代替响应式设计。
当 Label 是唯一的控件时,您可以打开 Autosize,将锚点设置为所有边,将 TextAlgin 设置为 Center 并调整 Label 的大小,这样它就占据了整个空间。
另一种方法是使用 TableLayoutPanels。需要一些时间来适应它,但它接近 WPF 的网格。
推荐阅读
- sql - SQL查询忽略表中匹配的正负值
- python - 在 Python 中使用 Selenium 检索数据的结果不一致
- python - Matplotlib 表格图例
- java - 反向迭代器和可迭代方法的Java模式?
- python - 我的累积移动平均函数不会根据参数而改变
- pyspark - 如何计算列的不同元素?
- eclipse - EGIT 无法连接到任何存储库 - 丢失未知
- amazon-web-services - Lambda Powertools Java - SegmentNotFound - @Tracing
- java - 跨微服务域的分布式缓存
- azure-data-factory - 检查存储中是否所有文件都可用 - Azure ADF