我有一个程序,用户输入一些数据,然后它创建一个套用信函并将其复制到剪贴板
一些用户回来说他们希望这封信的某些部分加下划线,以帮助他们发送它的人更容易阅读(标题等)
我不知道如何将某些内容标记为下划线
我目前正在使用
Clipboard.SetDataObject(sb.ToString(), true);
其中 sb 是字符串生成器
关于如何将某些内容标记为下划线的任何想法?
您可能希望将 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);
假设您的用户正在粘贴到识别 HTML 的程序(例如 Microsoft Word)中,您可以这样做:
string underlinedText = "<span style=\"text-decoration: underline;\">" +
sb.ToString() + "</span>";
Clipboard.SetDataObject(underlinedText, true);
这将强调复制到剪贴板缓冲区的整个文本片段。
他们将这些数据粘贴到哪里?您的代码是客户端还是 Web 应用程序?
我建议添加一个 WYSIWYG 控件或 RichTextBox。这可以使用户能够在剪切和粘贴之前在您的程序中进行格式化。