这不是一个四舍五入的问题.差异~5 +像素.
测试用例字符串:""MACD(26,12,9)-0.000016"
e.Graphics.MeasureString("MACD (26,12,9) -0.000016", SystemFonts.DefaultFont).Width)
TextRenderer.MeasureText("MACD (26,12,9) -0.000016", SystemFonts.DefaultFont).Width)
Run Code Online (Sandbox Code Playgroud)
结果总是:
139.3942
134
Run Code Online (Sandbox Code Playgroud)
为什么尺寸差异如此之大?我只需要在外面绘制圆形宽度的方法.但它应该与MeasureString匹配,反之亦然.
在 Windows 表单中,我有包含长文本的复选框列表,该表单可重新调整大小..
我可以根据表单宽度在运行时使文本自动换行吗?
我在 C# (.NET Framework 3.5) 中有以下代码
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required
// for Windows Forms designer support.
//
Label myControl = new Label();
myControl.Text = "TEXT";
myControl.FlatStyle = FlatStyle.System;
myControl.AutoSize = true;
myControl.BorderStyle = BorderStyle.FixedSingle;
myControl.Padding = new Padding(0);
myControl.Margin = new Padding(0);
this.Controls.Add(myControl);
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
它应该显示一个标签,其中的文本由边框包围,如下所示:
------
|TEXT|
------
Run Code Online (Sandbox Code Playgroud)
相反,我得到这个:
--------
|TEXT |
--------
Run Code Online (Sandbox Code Playgroud)
我不知道为什么......我的目标是能够有多个标签,它们之间没有空格,如下所示:
-----------
|TEXT|TEXT|
-----------
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?提前致谢!
为了澄清起见,我需要在文本和边框之间没有空格。