我正在使用标签显示消息。我已经使用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中工作良好?宽度和高度如何关联?谁能解释我所缺少的吗?
谢谢
信德省
答案 0 :(得分:0)
将文本大小减小25之前有多大?可能只是空间不足而已中断-请尝试使用其他数字。而且……您当然想减去而不分配?
答案 1 :(得分:0)
修改“锚点”设置,使其仅锚定在左侧或右侧
答案 2 :(得分:0)
Size sz = new Size(this.Width, Int32.MaxValue);
sz = TextRenderer.MeasureText(this.Text, this.Font, sz, TextFormatFlags.WordBreak);
this.Height = sz.Height;
其中“ this”是您的控件。