IDWriteTextFormat1::SetLastLineWrapping到底做什么?

IDWriteTextFormat1::SetLastLineWrapping到底做什么?,text,layout,directwrite,Text,Layout,Directwrite,以下方面的文件不足: 设置最后一行的换行模式。如果[single BOOL parameter]设置为FALSE,则最后一行不换行。如果设置为TRUE,则最后一行将被换行 因为它同样简洁: 设置最后一行的最后一个单词是否已换行 我想知道的一些细节: 最后一行是哪一行?在我的测试中,有时是最后一行可见的行获得额外的单词,但有时是下一行,然后更多的行跟随。(这是DirectWrite中的一个bug吗?在我的代码中?)这里“可见”是指(对于水平线,在垂直方向上)完全位于布局矩形内 它是如何与人互动的

以下方面的文件不足:

设置最后一行的换行模式。如果[single BOOL parameter]设置为FALSE,则最后一行不换行。如果设置为TRUE,则最后一行将被换行

因为它同样简洁:

设置最后一行的最后一个单词是否已换行

我想知道的一些细节:

  • 最后一行是哪一行?在我的测试中,有时是最后一行可见的行获得额外的单词,但有时是下一行,然后更多的行跟随。(这是DirectWrite中的一个bug吗?在我的代码中?)这里“可见”是指(对于水平线,在垂直方向上)完全位于布局矩形内
  • 它是如何与人互动的?一些测试表明,设置修剪时行为不同。(使用
    SetTrimming(&DWRITE\u TRIMMING{DWRITE\u TRIMMING\u GRANULARITY\u CHARACTER,0,0},nullptr);

它用于矩形瓷砖,否则应用程序名称的最后一个字将被隐藏,因为它被包装到下一行。默认情况下,这将产生:

"here is an example of a long application name" ->

<----------->.
here is an  /|\
example of a |
long        \|/
application
name
“下面是一个长应用程序名的示例”->
.
这是一个/|\
一个例子|
长的\|/
应用
名称
因此,如果平铺高度很短(比如说只有3行),那么只有“应用程序”一词不可见,但更有用的是至少显示下一个单词的一部分

<----------->.
here is an  /|\
example of a |
long applica\|/
name
。
这是一个/|\
一个例子|
长期应用\|/
名称
结合省略号字符修剪,它看起来像:


无论是否启用修剪,它始终表示最后一条可见线,但当启用修剪时,将修剪掉任何部分线,使最后一条“可见”线成为最后一条未修剪线。这就是您所看到的不同之处。

它用于矩形分幅,否则应用程序名称的最后一个字将被隐藏,因为它被包装到下一行。默认情况下,这将产生:

"here is an example of a long application name" ->

<----------->.
here is an  /|\
example of a |
long        \|/
application
name
“下面是一个长应用程序名的示例”->
.
这是一个/|\
一个例子|
长的\|/
应用
名称
因此,如果平铺高度很短(比如说只有3行),那么只有“应用程序”一词不可见,但更有用的是至少显示下一个单词的一部分

<----------->.
here is an  /|\
example of a |
long applica\|/
name
。
这是一个/|\
一个例子|
长期应用\|/
名称
结合省略号字符修剪,它看起来像:

无论是否启用修剪,它始终表示最后一条可见线,但当启用修剪时,将修剪掉任何部分线,使最后一条“可见”线成为最后一条未修剪线。这就是你看到的区别