问题描述
我有一个应用程序,可以将字符串以 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 .