如何在不修剪的情况下使用DrawString?

Sar*_*ien 18 c# winforms

我发现DrawString函数切断整个字符或单词的方式是违反直觉的.显示文本的一部分清楚地表明缺少某些东西.

这里有些例子:

StringTrimming.None: 在此输入图像描述

StringTrimming.Character: 在此输入图像描述

我想要的是: 在此输入图像描述 (GIMP模型)

StringTrimming.None和StringTrimming.Character一样吗?在我的案例中,他们似乎表现得完全相同.有什么我可以忽略或这是一个已知的"功能"?

根据文档 StringTrimming.None"指定不修剪".

使用Java创建的示例的此站点甚至显示"无"以修剪比"字符"更多的字符.

还有其他技巧可以达到这个效果吗?

注意:我不想显示"......"或类似内容.我发现这是浪费空间,但这可能是对UX的讨论.

Mic*_*Liu 13

文本可能会被修剪,因为它实际上是无形地包裹到下一行.在调用中Graphics.DrawString,通过传递属性设置为的StringFormat对象来禁用包装:FormatFlagsNoWrap

StringFormat format =
    new StringFormat
    {
        FormatFlags = StringFormatFlags.NoWrap,
        Trimming = StringTrimming.None
    };
g.DrawString(s, font, brush, rect, format);
Run Code Online (Sandbox Code Playgroud)