0

如何使 txtTitleofWebpage.Text 在复制到剪贴板时以斜体显示,以便用户可以将引用复制到 Microsoft Word 文档中?我正在尝试使用 C# 制作一个 Windows 窗体应用程序,以从用户输入表单的信息中生成哈佛参考。

这是代码:

Clipboard.SetText(wholeName + ", (" + yOPDate + ") " + txtTitleofWebpage.Text + 
                  " [online]. Available from: " + txtURLWeb.Text + " [Accessed: " + 
                  accessDateWeb.Value.ToShortDateString() + "].", TextDataFormat.Rtf);
4

1 回答 1

1

看来您必须在 html 字符串中插入一个“标题”,我为此找到了 2 个示例:

这适用于 Word:
示例代码:

    Clipboard.SetText(@"Version:1.0
                        StartHTML:000125
                        EndHTML:000260
                        StartFragment:000209
                        EndFragment:000222
                        <HTML>
                        <head>
                        <title>HTML clipboard</title>
                        </head>
                        <body>
                        <!–StartFragment–&gt;<b>Hello!</b><!–EndFragment–&gt;
                        </body>
                        </html>", 
                        TextDataFormat.Html);

这复制了一个你好!到您的剪贴板,您必须根据我认为的大小更改片段,所以我不知道这将如何与动态字符串一起使用,但我希望这能让您入门。666

如果你也可以使用 RTF

Clipboard.SetText(@"{\rtf1\ansi This is in \i\f0\fs17 italic\i0.}",
                    TextDataFormat.Rtf);

字符串示例

var q = "test123";
Clipboard.SetText(@"{\rtf1\ansi This is in \i\f0\fs17 " + q + @"\i0.}",
                    TextDataFormat.Rtf);

或者

var q = "test123";
Clipboard.SetText( $@"{\rtf1\ansi This is in \i\f0\fs17 {q}\i0.}",
                    TextDataFormat.Rtf);

请注意@字符串的第二部分之前,如果您需要转义某些字符(您需要使用RTF) ,请@在每个开头添加"

这似乎要容易得多,因为您不必插入标题,但格式本身有点复杂 imo。

于 2017-02-03T11:27:26.467 回答