1

我有一个程序,用户输入一些数据,然后它创建一个套用信函并将其复制到剪贴板

一些用户回来说他们希望这封信的某些部分加下划线,以帮助他们发送它的人更容易阅读(标题等)

我不知道如何将某些内容标记为下划线

我目前正在使用

Clipboard.SetDataObject(sb.ToString(), true);

其中 sb 是字符串生成器

关于如何将某些内容标记为下划线的任何想法?

4

3 回答 3

2

您可能希望将 RTF 视为 HTML 的替代品,因为它较旧,它通常具有更好的支持,并且更有可能最终得到正确的文本文档,而不是 MS Words 对 HTML 的可怕解释。您还会发现 RTF 支持分页符,而 HTML 不支持。但请注意,RTF 中的加价有点奇怪。例如:

Clipboard.SetText(@"{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fswiss\fcharset0 Arial;}}\viewkind4\uc1\pard\f0\fs20 text \ul  text\ulnone  text\par}", TextDataFormat.Rtf);

RTF 规范可在此处从Microsoft获得

于 2009-08-13T16:20:00.123 回答
1

假设您的用户正在粘贴到识别 HTML 的程序(例如 Microsoft Word)中,您可以这样做:

string underlinedText = "<span style=\"text-decoration: underline;\">" + 
                            sb.ToString() + "</span>";
Clipboard.SetDataObject(underlinedText, true);

这将强调复制到剪贴板缓冲区的整个文本片段。

于 2009-08-13T15:51:41.780 回答
-2

他们将这些数据粘贴到哪里?您的代码是客户端还是 Web 应用程序?

我建议添加一个 WYSIWYG 控件或 RichTextBox。这可以使用户能够在剪切和粘贴之前在您的程序中进行格式化。

于 2009-08-13T15:57:00.993 回答