2013-10-18 99 views
1

進程M顯示主窗體(WPF)。進程M啓動另一個進程D.進程D顯示一個對話框(WPF)。有沒有辦法讓主窗體成爲對話框的父窗體?這些進程在64位操作系統上具有不同的位數。在C#/ WPF中爲2個進程設置父窗體/窗口

我不想使用TopMost標誌,因爲我不希望對話框在所有內容之前,就在我的主窗體前面。

我可以在這些過程之間實現一些數據交換,所以基本上每件事都是可能的,例如,將窗口把手轉移到另一個過程或類似的地方。 PInvoke()或不安全的代碼對我來說也可以。

該提案應該適用於Vista SP2及更高版本。謝謝。

回答

0

我會說沒有,因爲有一個明確的聲明,一個視圖只能由創建它的線程訪問。

因此,由不同線程創建的窗口無法關聯,對不起。

選中此文檔:http://msdn.microsoft.com/en-us/library/ms741870.aspx(多窗口,多線程部分)。

+0

嗯,我認爲只要有這樣的事情存在:http://blogs.msdn.com/b/changov/archive/2009/10/26/hosting-wpf-ui-cross-thread-and-cross- process.aspx,設置窗口的父項不會太麻煩。 –

+0

在View中設置一個窗口作爲另一個窗口的父窗口並不是一回事。第一次交互不需要「交叉線程」功能,而第二次交互則不需要。 –