C# 我是否可以在不使用winformshost的情况下在WPF上停靠Lync SDK对话?

C# 我是否可以在不使用winformshost的情况下在WPF上停靠Lync SDK对话?,c#,wpf,dock,windowsformshost,lync-2010,C#,Wpf,Dock,Windowsformshost,Lync 2010,我正在尝试构建一个以Lync SDK为基础的应用程序,根据MSDN上的文档,我需要将对话窗口停靠在winformshost上 但这里的问题是winformshost始终位于顶部,不支持不透明性,并且有点难以使用。所以这似乎不是最好的选择 我很好奇是否还有其他控件可以使用 对于停靠,Lync基本上使用这些代码行WindowsFormsHost.Child.Invoke()停靠和WindowsFormsHost.Child.Hide取消停靠 delegate void DockConversatio

我正在尝试构建一个以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使用本机windows/控件的唯一方法是通过WindowsFormsHost,因此我很确定您一定会坚持使用它


但我希望被证明是错的;)

我认为这是不可能的,因为对话窗口是本机窗口,而不是WPF窗口。由于WPF使用本机windows/控件的唯一方法是通过WindowsFormsHost,因此我很确定您一定会坚持使用它

但我希望被证明是错的;)