为什么字体大小和SelectionFont大小之间有时会有差异?

时间:2017-07-27 20:10:06

标签: c# winforms fonts richtextbox

我有一个RichTextBox的项目,我正在尝试计算字体大小的差异。我看到了一些我不想要的奇怪数字,所以我制作了一个非常简单的测试应用程序。

我要做的是将第一个字符的字体大小和设置的字体大小设置为RichTextBox本身,并使用以下内容在Label中显示:

public Form1()
{
    InitializeComponent();

    richTextBox1.Text = "This is a test";
    //richTextBox1.Font = new Font(richTextBox1.Font.FontFamily, 8.5f);

    label1.Text = richTextBox1.Font.SizeInPoints.ToString();

    richTextBox1.Select(0, 1);
    label2.Text = richTextBox1.SelectionFont.SizeInPoints.ToString();
}

现在,这很好,所有(默认大小为8.25),但如果我取消注释该块中的行以将字体大小增加到8.5,我的标签读取8.5(label1)和8.25(label2)。我不确定这种差异来自哪里。如果我更改为8.6,则选择仍为8.25。但如果我改为8.7,则SelectionFont.SizeInPoints返回9.设置为18.4,我选择了18.75 ...

现在我确定有一些疯狂的方法,我只是不清楚,并且很难计算出字体大小的真正差异,因为在我的测试应用中我应该理想在第一个字符和richTextBox1.Font.SizeInPoints之间得到0。

0 个答案:

没有答案