【问题标题】:Align a control based on its center根据控件的中心对齐控件
【发布时间】:2018-04-03 06:58:23
【问题描述】:

我正在用 C# Winforms 开发一个桌面应用程序,我在其中实现了一个显示累积通知数量的通知系统。

我的问题是铃铛上的标签没有在中间对齐

为了让我理解,我想像 SO 对其声誉系统一样将标签置于中心

为此,他使用了以下代码:Centering controls within a form in .NET (Winforms)?

this.CountLabel.Left = ((this.NotificationsBell.ClientSize.Width - this.CountLabel.Width) / 2);

但不是将我的标签居中,而是结果

那么,我怎样才能将标签从其中心对齐?

注意:NotificationsBell 是带有铃铛图像的 PictureBox,CountLabel 是带有数字 100 和蓝色背景的标签

【问题讨论】:

  • 您需要创建一个MCVE。目前,控件(Label 和 NotificationsBell)之间的关系尚不清楚。
  • 建议简单地为与此图标相关的所有内容添加一个容器(例如面板),然后将铃铛和标签添加到该面板并将两者的水平对齐设置为居中
  • 您是否尝试检查 SO 的标签以查看那里使用了什么?提示:有<a><svg/><span>+100</span></a> 然后看看使用的类和相关的属性
  • 您忘记将铃铛的Left 添加到结果中。
  • @LordWilmore 我想到了一个容器面板,但是如果标签的宽度超过面板的大小,那么它会被该面板的限制切割

标签: c# winforms


【解决方案1】:

要将control1的中心垂直对齐control2的中心,当它们都托管在同一个父级中时,您可以使用以下代码:

control1.Left = control2.Left + (control2.Width - control1.Width) / 2;

【讨论】:

  • 我不敢相信单行就完成了这项工作 ;-),非常感谢
  • @HéctorManuelMartinezDurán 好吧,您只是忘记将左侧 X 位置添加到您的控件中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多