C# 什么';在TextFormatFlags枚举中,EndEllipsis和WordEllipsis之间的区别是什么?
根据我对的理解,在使用C# 什么';在TextFormatFlags枚举中,EndEllipsis和WordEllipsis之间的区别是什么?,c#,winforms,text-rendering,C#,Winforms,Text Rendering,根据我对的理解,在使用TextFormatFlags.EndEllipsis时,应将文本修剪为适合显示矩形,并替换为省略号: EndEllipsis |删除修剪线的末端,并将其替换为省略号 使用TextFormatFlags.WordEllipsis时,应将文本修剪到适合显示矩形的最后一个单词,并添加省略号: 单词省略号|将行修剪到最近的单词,省略号放置在修剪行的末尾 然而,我似乎找不到这两者之间的任何区别 以下是我的测试控制代码: public partial class UserContro
TextFormatFlags.EndEllipsis
时,应将文本修剪为适合显示矩形,并替换为省略号:
EndEllipsis |删除修剪线的末端,并将其替换为省略号
使用TextFormatFlags.WordEllipsis
时,应将文本修剪到适合显示矩形的最后一个单词,并添加省略号:
单词省略号|将行修剪到最近的单词,省略号放置在修剪行的末尾
然而,我似乎找不到这两者之间的任何区别
以下是我的测试控制代码:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
this.Text = "This it my text. It's long enough to get cut in display.";
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var flags = (this.IsWordEllipsis) ? TextFormatFlags.WordEllipsis : TextFormatFlags.EndEllipsis;
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, e.ClipRectangle, this.ForeColor, flags);
}
private bool _IsWordEllipsis;
public bool IsWordEllipsis
{
get { return _IsWordEllipsis; }
set { _IsWordEllipsis = value; this.Invalidate(); }
}
}
无论我设置了什么值,IsWordEllipsis属性-文本始终呈现为这是我的文本。它很长,…
是否应该使用单词省略
标志将显示的字符串修剪为最后一个完整的单词?(
这是我的文本。它很长…
)内部文本渲染器。DrawText
调用函数
相应的标志为:
DT_WORD_省略号:截断任何不符合
矩形并添加椭圆
DT_END_省略号用于显示的文本,如果字符串的结尾没有
拟合矩形时,它将被截断并添加椭圆。如果
不在字符串末尾的单词超出了
矩形,它被截断,没有椭圆
我对.NET文档中的WordEllipsis
的解释方法和您一样,但上面这句话可能更好地解释了这个选项的作用
如果仍然不清楚,请看一看这个简单的示例,它试图呈现var quote=“不是所有\n可以计数的东西都可以计数,\n也不是所有\n可以计数的东西。”代码>
谢谢!我可能应该考虑自己测试多行字符串。