我正在使用标签来显示消息。我使用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!
请参阅图片,Label Text
如果该方法根据内容计算标签的大小,为什么内容在case2中被剪切并且在case3中运行良好?宽度和高度如何相关?谁能解释我错过的东西?
谢谢,
娜斯迪胡
Size sz = new Size(this.Width, Int32.MaxValue);
sz = TextRenderer.MeasureText(this.Text, this.Font, sz, TextFormatFlags.WordBreak);
this.Height = sz.Height;
“这个”是你的控制。
文字大小减少25之前有多大?也许它只是没有足够的空间和切断 - 尝试使用不同的数字。而且......你当然想减去而不是分配?
将“锚点”设置修改为仅锚定到左侧或右侧