C# 是否有允许文本换行和结尾省略号的TextFormatFlags组合?
我一直无法编写一点字符串呈现代码,这些代码提供了我想要的一切。到目前为止,只有权衡 我正在寻找一种类似Windows7桌面快捷方式的东西,在文本上方有一个图像,文本可以换行一次,任何更大的东西都可以用椭圆截断 例如: 我使用的是C# 是否有允许文本换行和结尾省略号的TextFormatFlags组合?,c#,text-rendering,C#,Text Rendering,我一直无法编写一点字符串呈现代码,这些代码提供了我想要的一切。到目前为止,只有权衡 我正在寻找一种类似Windows7桌面快捷方式的东西,在文本上方有一个图像,文本可以换行一次,任何更大的东西都可以用椭圆截断 例如: 我使用的是TextRenderer.DrawText,我尝试了TextFormatFlags的各种组合,但我只能得到无限换行的文本,或者是停在一行并带有省略号的文本 一些例子。在所有情况下,提供给textrender的边界都在我正在绘制的曲面的ClipRectangle的边界内。
TextRenderer.DrawText
,我尝试了TextFormatFlags
的各种组合,但我只能得到无限换行的文本,或者是停在一行并带有省略号的文本
一些例子。在所有情况下,提供给textrender
的边界都在我正在绘制的曲面的ClipRectangle
的边界内。它试图呈现的文本是“这是一个名为#1的组的相当长的名称。”
此代码:
TextFormatFlags flags = TextFormatFlags.HorizontalCenter |
TextFormatFlags.NoPadding | TextFormatFlags.WordBreak |
TextFormatFlags.EndEllipsis;
Rectangle rect = new Rectangle(x, y, this.Width - 6, this.Height - y);
TextRenderer.DrawText(e.Graphics, _text, Font, rect, _textColor, flags);
…产生了以下结果:
只需删除TextFormatFlags.WordBreak
标志即可产生:
如何才能做到这一点,例如在我经过的
矩形范围内尽可能地进行换行,然后在发生截断时进行结束椭圆?您必须使用一个,cough,非直观命名的选项来获得分词和结束椭圆TextFormatFlags.TextBoxControl
提供您要查找的内容
这有一些额外的格式化行为,如果您喜欢图标标题的外观,您可能不会对此感到不安,它使用相同的winapi函数。它的关键之处在于,它不会像多行文本框那样显示剪裁的行,也会让您返回省略号。可能的重复必须指定所有三个标志,TextBoxControl
,WordBreak
和EndEllipsis
,才能获得所需的行为TextBoxControl
本身并不能神奇地完成这项任务。也许这可以在将来节省一些时间。