【问题标题】:transfer text to clipboard that is underlined将文本传输到带下划线的剪贴板
【发布时间】:2010-11-19 08:34:43
【问题描述】:

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

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

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

我正在使用

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

其中 sb 是字符串生成器

知道如何将某些内容标记为下划线吗?

【问题讨论】:

    标签: c# text format clipboard underline


    【解决方案1】:

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

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

    这将在复制到剪贴板缓冲区的整个文本 sn-p 下划线。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 需要更多细节才能给出正确答案
      【解决方案3】:

      您可能希望将 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);
      

      specification for RTF 可以从 Microsoft here 获得。

      【讨论】:

      • 如果您的意思是在 C# 中复制到剪贴板,然后粘贴到 Outlook 中,那么可以。反思一下,当我说替代方案时,我应该添加更多格式,因为您加载剪贴板的格式越多,目的地就越有可能找到它喜欢的格式。
      猜你喜欢
      • 1970-01-01
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多