为了账号安全,请及时绑定邮箱和手机立即绑定

使用 GetPreferredSize() 时如何计算大小?

使用 GetPreferredSize() 时如何计算大小?

C#
紫衣仙女 2022-11-21 16:29:21
我正在使用标签来显示消息。GetPreferredSize()我已经使用方法计算了标签的大小。当我没有对标签大小时进行任何操作时,此方法工作正常。但是,当我减小标签的宽度时,文本会被剪裁。\n但是,如果我在要显示的文本末尾包含一个换行符 ( ),则在前一种情况下被剪裁的文本将显示在下一行中。这是我试过的。label1.Text = "Are you sure you wish to cancel? \n You will permanently discard any information you have entered!";label1.Font = new Font(new FontFamily("Calibri"), 15); Size textSize = label1.GetPreferredSize(Size.Empty); //Works fine.label1.Size = textSize;textSize.Width -= 25;label1.Size = textSize;// Text is clipped.label1.Text = "Are you sure you wish to cancel? \n You will permanently discard any information you have entered! \n "; //Works fine again!参考图片, 标签文字如果该方法根据内容计算标签的大小,为什么内容在 case2 中被裁剪而在 case3 中效果很好?宽度和高度有什么关系?谁能解释我错过了什么?谢谢,
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

 Size sz = new Size(this.Width, Int32.MaxValue);

            sz = TextRenderer.MeasureText(this.Text, this.Font, sz, TextFormatFlags.WordBreak);

            this.Height = sz.Height;

“这个”是你的控制权。


查看完整回答
反对 回复 2022-11-21
?
慕容3067478

TA贡献1773条经验 获得超3个赞

修改“锚点”设置以仅锚定到左侧或右侧



查看完整回答
反对 回复 2022-11-21
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

在减少 25 之前文本大小有多大?也许只是空间不够,被切断了——尝试使用不同的数字。而且......你当然想减去而不是分配?

查看完整回答
反对 回复 2022-11-21
  • 3 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信