2

问题 A。

给定

  1. 富文本格式的字符串,可能包含段落、制表符、空格、换行符、缩进(甚至图像?)
  2. 自动换行富文本控件/编辑器的宽度

执行所有自动换行后,我如何知道内容的高度?有没有类似的东西

int MeasureRichTextHeightAfterWordWrap(字符串 aRichTextContent,int aWidth)?

否则那些富文本控件如何知道要自动调整多少?

我是否必须将内容实际放置在虚拟富文本控件上,然后设置它的宽度并使用 GetPositionFromCharIndex(TextLength-1) 获取它的高度?虽然这确实有效,但它似乎是“浪费”

问题 B. 如果我在纯文本备忘录/控件/编辑器上绘制纯文本,并使用手动计算的缩进、中断、自动换行来手动绘制字符串以假装 RTF。

是更容易还是更难?

如果我的英语看起来像学生,则经过编辑使其看起来更清晰和抱歉,因为它不是我的母语。

4

1 回答 1

1

很抱歉我第一次尝试回答不好。我确实找到了在 RichTextBox 内测量的答案。显然你必须使用 Win32 GDI API 调用。

http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.windowsforms.controls/2004-09/0574.html

我通过在运行此块后更改搜索发现了这一点,这解释了为什么没有纯 .NET 方法来做到这一点:

http://www.developmentnow.com/g/38_2005_10_0_0_626243/I-dont-believe-this-code-gives-the-correct-RichTextBox-string-size.htm

于 2010-05-07T03:16:46.410 回答