我无法将一些字符串渲染代码放在一起,这些代码可以为我提供所有目标.到目前为止,只能权衡利弊.
我正在拍摄一些行为与Windows7桌面快捷方式相同的方式,因为文本上方有一个图像,文本可以包装一次,任何更多的椭圆截断.
如:

我使用TextRenderer.DrawText,我已经试过的各种组合TextFormatFlags,但我只能得到任何一个包装无限期文本,或停在一个单一的线路之间,其省略号文本.
一些例子.提供给界限TextRenderer是,在所有情况下,的边界内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);
Run Code Online (Sandbox Code Playgroud)
...产生这个:

只需删除TextFormatFlags.WordBreak标志就会产生:

我怎么能这样做,比如我尽可能在RectangleI pass 的范围内进行包装,然后在发生截断时结束椭圆?
你必须使用a,cough,unintuitively named选项来获得单词分词和结束省略号. TextFormatFlags.TextBoxControl给你你想要的东西.
这有一些额外的格式化行为,如果您喜欢图标标题的外观,它可能会让您感到不安,它使用相同的winapi函数.它做的关键是不显示剪切线,就像多行TextBox一样,也给你省略了省略号.
| 归档时间: |
|
| 查看次数: |
1488 次 |
| 最近记录: |