1

我正在尝试构建一个以 Lync SDK 为基础的应用程序,根据 MSDN 上的文档,我需要将对话窗口停靠在 winformshost 上。

但是这里的问题是 winformshost 总是在最前面,不支持不透明度,而且有点难玩。所以似乎不是最好的选择。

我很好奇是否还有其他可以使用的控件?

对于停靠,Lync 基本上使用这些代码行WindowsFormsHost.Child.Invoke()来停靠和WindowsFormsHost.Child.Hide取消停靠;

delegate void DockConversationDelegate(string ConversationId);

myFormsHost.Child.Invoke(new DockConversationDelegate(DockTheConversation), 
      new object[] { _ConversationToDock });

public void WindowPanelHandle(string ConversationId, int PanelHandle)
{
   Microsoft.Lync.Model.Conversation.Conversation conversationToDock;
   if (myNewConversation.TryGetValue(ConversationId, out conversationToDock))
   {
       ConversationWindow cw = _automation.GetConversationWindow(conversationToDock);
       cw.Dock((IntPtr)PanelHandle);
    }
}

每一个答案都值得赞赏!谢谢...

4

1 回答 1

1

我不相信这是可能的,因为对话窗口是本机窗口,而不是 WPF 窗口。由于 WPF 使用本机窗口/控件的唯一方法是通过 WindowsFormsHost,所以我很确定你会坚持下去。

不过,我很想被证明是错的;)

于 2011-10-11T10:25:25.827 回答