c# - Lync 2013 即时消息字体和颜色

标签 c# html css lync-2013 ucma

背景 - 我正在开发一个 Lync 应用程序,它在与特定用户的对话中充当中间人。基本上,打给 UserA 的调用会转发给 UserB,但不会向调用者提供 UserB 的详细信息。从她的 Angular 来看,她直接与 UserA 对话。基本上,应用程序为 UserA 的每个来电管理两个调用:

  1. 从调用者到 UserA
  2. 从用户 A(通过模拟调用者)到用户 B

每条消息都被接收并转发给 UserB。

问题 在某些情况下,我希望系统自动回复。到目前为止没问题,但我想为这些“系统”消息设置样式。在正常的 Lync 对话中聊天时,您可以选择字体、颜色和大小,以及更改文本的方向。

现在,对于双方之间的定期通信,我只是原封不动地传递消息 - 即,UserA 收到来自调用者的消息,系统将 e.TextBody 按原样发送给 UserB (eInstantMessageReceivedEventArgs)。我只是打电话:

instantMessagingFlow.BeginSendInstantMessage(Encoding.UTF8.GetBytes(e.TextBody),
    res =>
    {
        try
        {
            instantMessagingFlow.EndSendInstantMessage(res);
        }
        catch(Exception ex)
        {
            //handle exception
        }
    });

现在,在这种情况下,格式完全丢失了。我没有发现在 InstantMessageReceivedEventArgs...

中传递任何类型的样式数据的证据

我知道可以使用 HTML 来设置 IM 的样式,这样发送消息就变成了这样:

instantMessagingFlow.BeginSendInstantMessage(new ContentType("text/html"),
    Encoding.UTF8.GetBytes("<div style='color: blue;'>" + e.TextBody + "</div>"),
    res => 
    [...]

这为我提供了所选颜色的文本,但我在选择字体或设置文本对齐方式时遇到了问题。无论我做什么,某些字体都会显示在 Times New Roman 中(或者是 Segoe UI?无论默认是什么...)。我使用 font-family: Arial; 设置字体。在某些情况下,它会被简单地忽略,但即使它起作用,设置 direction: rtl;(大多数文本应该是从右到左的),或 text-align : 正确; 没有任何效果...

我输入的命令不正确吗?是否有特定命令需要用于文本对齐而不是 text-align

最佳答案

如果您尝试在 OCS Web 或 Window 客户端上发送消息,则需要使用 X-MMS-IM-Format 以不同的方式对其进行格式化。对于 Lync 2010 客户端,您可以使用以下代码片段:

string fontColor = "color: " + String.Format("{0:X2}{1:X2}{2:X2}", agentFontColor.R, agentFontColor.G, agentFontColor.B) + "; ";
            htmlMessage = "<html><body ><div style=\" font-family: " + agentFontName + "; " + agentFontBold + agentFontSize + fontColor + agentFontItalic + agentFontUnderline + " \">" + imText + "</div></body></html>";

agentFontBold should be : font-weight: bold; or font-weight: Normal; -as per requirement. agentFontSize should be : font-size: 11px - as per requirement. agentFontItalic should be : font-style: italic; or font-style: Normal; -as per requirement. agentFontUnderline should be : text-decoration: underline; or "" -as per requirement.

关于c# - Lync 2013 即时消息字体和颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28984200/

相关文章:

css - 如何在响应 slider 中重叠图像?

c# - async/await 和 Parallel.For 循环

c# - 使用 SQL-Server 2016 生成 EntityFramework 6 模型非常慢

c# - 在 .NET Core 中获取类的公共(public)属性

javascript - Gulp-rename 更改文件夹中每个文件的名称

javascript - 将鼠标悬停在图像上时,如何更改两个或多个图像?

c# - 在 C# 中通过 Web 服务传输图像的最佳方式是什么?

html - 如何使用 css 修复子菜单变宽 100%

javascript - 在 JavaScript 动画 Canvas 上叠加动画 div

html - 高度似乎无法在 Chrome 77 上正常工作