我有一个程序,用户输入一些数据,然后创建一个套用信函并将其复制到剪贴板
有些用户回来说他们希望信中的某些部分有下划线,以帮助他们发送信息的人更容易阅读(标题等)
我不知道如何标记带下划线的内容
我目前正在使用
Clipboard.SetDataObject(sb.ToString(), true);
其中sb是字符串构建器
关于如何标记下划线的任何想法?
答案 0 :(得分:2)
您可能希望将RTF视为HTML的替代品,因为它较旧,它通常具有更好的支持,并且更有可能最终得到正确的文本文档而不是MS Word对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);
可以从Microsoft specification for RTF找到here。
答案 1 :(得分:1)
假设您的用户正在粘贴一个识别HTML的程序(例如Microsoft Word),您可以这样做:
string underlinedText = "<span style=\"text-decoration: underline;\">" +
sb.ToString() + "</span>";
Clipboard.SetDataObject(underlinedText, true);
这将为复制到剪贴板缓冲区的整个文本片段加下划线。
答案 2 :(得分:-2)
他们将这些数据粘贴到哪里?您的代码是客户端还是Web应用程序?
我建议添加WYSIWYG控件或RichTextBox。这可以让用户在剪切和粘贴之前在程序中进行格式化。