我正在尝试构建一个以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);
}
}
感谢每一个答案!谢谢…
我认为这是不可能的,因为对话窗口是一个本机窗口,而不是WPF窗口。由于WPF使用本机窗口/控件的唯一方法是通过WindowsFormsHost,那么我很确定你被困住了。
我希望被证明是错的;)