以生成 Microsoft Teams 可以使用的格式的方式写入 C# 中的剪贴板

Writing to the clipboard in C# in a way that generates formatting that Microsoft Teams can use

我有一个应用程序可以获取一个字符串,并将其以 30 pt 字体 Courier New 写入剪贴板。下面的代码适用于 word、outlook,基本上任何接受 RTF 格式文本的东西。不幸的是,它在 Teams 中只被视为纯文本,这是最常见的用例,也是迄今为止最重要的用例。有没有人知道如何以 MS Teams 可以识别的方式对其进行格式化?

private void ExecuteCopy(String lap)
        {
            // Escape Special Characters for RTF
            StringBuilder rtf = new StringBuilder();
            StringBuilder html = new StringBuilder();
            html.Append("<p style = \"font - family:'Courier New'; font - size:30px\">");

            foreach (char c in lap)
            {
                rtf.Append(GetRtfEncoding(c));
                html.Append(c);
            }

            html.Append("</p>");

            // Add both RTF and plain Text into clipboard
            DataObject data = new DataObject();
            data.SetData(DataFormats.Text, lap);
            data.SetData(DataFormats.Rtf, @"{\rtf1\ansi\deff0 {\fonttbl {\f0 Courier New;}}\f0\fs60 " + rtf.ToString() + "}", true);
            data.SetData(DataFormats.Html, html, true);
            Clipboard.SetDataObject(data);
        }
不幸的是,

Teams 不支持像这样的丰富 HTML 格式。你会得到的最好的是一些有限的降价支持,但至少它是某种东西。有关更多信息,请参见此处:https://support.microsoft.com/en-ie/office/use-markdown-formatting-in-teams-4d10bd65-55e2-4b2d-a1f3-2bebdcd2c772 .