富文本格式行间距

Chr*_*931 6 c# rtf

我尝试转换RTF格式的纯文本.因此,我使用RichTextBox(WinForms).
有关方法将RTF-Markup作为字符串.

现在,我想在标记中插入行间距.我发现有2个参数:

 - \slX (Space between lines in twips)
 - \slmultX (either 0 or 1)
Run Code Online (Sandbox Code Playgroud)

如果我设置\slmult0,行间距高于文本行.
当我设置时\slmult1,行间距低于文本行.

我用以下方式计算间距:

(lineSpacing + fontSize)*20
Run Code Online (Sandbox Code Playgroud)

当我切换\slmult0\slmult1,我确定,线距离小于\slmult0.

有人知道这种行为的原因吗?我需要用另一个公式计算吗?

TaW*_*TaW 5

如果我设置 \\slmult0,则行距位于文本行上方。\n当我设置 \\slmult1 时,行距位于文本行下方。

\n\n

这不是我在规格中读到的内容。

\n\n

按照我的理解,它的意思是\\slmult0说 的值\\slN直接用作某个单位的距离\\slmult1,而说Nin的意思\\slN是乘以常规行距的一个因子。

\n\n

请参阅此处的最后一篇文章\n了解(一些)更多详细信息!(但还有一个注释是关于它太晚生效一行了..)

\n\n

N另请注意中标志的重要性\\slN!(这就是我上面评论的原因:比如说 的效果\\sl234将取决于行中最高字符的大小..!)

\n\n

这里对 RTF 的一些内容进行了很好的讨论;关于单位的注释:

\n\n
\n

RTF 的测量值通常以缇为单位。缇是二十分之一点,即 1440 英寸。有时这会导致一些大数字(例如 \\li2160,将左侧缩进设置为一英寸半)

\n
\n\n

以及段落前后额外间距的明确定义:

\n\n
\n

\\sbN -- 本段之前的 N 缇额外(垂直)空间(默认值:0)
\n \\saN -- 本段之后的 N 缇额外(垂直)空间(默认值:0)

\n
\n\n

以下是更直接的说明:

\n\n
\n

要使段落加倍行距,请将代码 \\sl480\\slmult1 放在\n \\pard之后。要将其三倍空格,请使用 \\sl720\\slmult1。若要仅\n 1.5 间距,请使用 \\sl360\\slmult1。单行距段落是默认设置,并且\xe2\x80\x99不需要任何特定代码。(幻数 480、720 和 360 don\xe2\x80\x99t 取决于段落中文本的磅值。)

\n
\n