2010-03-29 23 views
1

摘要:如何將Silverlight OOB附加到Winforms面板?

我想在目前的WinForms應用程序的一部分的Silverlight/WPF的可愛。應用程序只能訪問完整的.NET Framework 2.0,不多也不少。我能想到的唯一可能是使用Com + Automation的Silverlight OOB應用程序,但我無法弄清楚如何將Silverlight應用程序附加到父Winforms應用程序中的面板。

詳情:

我現在有一個WinForms應用程序,並希望利用改進的GUI功能在WPF但我的許多用戶仍在運行的.NET Framework 2.0和拒絕更新到3 +。所以WPF不適合我。

我知道Silverlight只是WPF的一個子集,但它具有我正在查找的大部分功能,並且只需要Silverlight插件。我已經閱讀了關於Silverlight 4的Com + Automation,它可以讓我訪問完整的桌面.Net Framework 2.0(我需要)。爲了使Com + Automation能夠在Silverlight中工作,我需要提升信任度,而我發現獲得提升信任的唯一方法就是讓我的Silverlight應用程序脫離瀏覽器(OOB)。

我的問題是,OOB應用程序似乎運行在它自己的容器窗口中,我需要在我的Winforms應用程序中嵌入面板內的Silverlight應用程序。我的Winforms應用程序不需要與Silverlight應用程序進行通信,反之亦然,這純粹是將所有內容都包含並顯示在一個窗口中。

如果還有另一種方法可以得到我想要的結果,我還沒有想過隨意推薦它。

回答

4

最好的選擇是託管Silverlight content within a WebBrowser Control。這將允許您的Silverlight內容在Windows窗體應用程序的「內部」運行。

COM自動化將無助於嵌入Silverlight INTO Windows窗體應用程序。它的目的是在Silverlight中使用COM,而不是其他方式。

+0

然後可以通過JavaScript和DOM實現兩者之間的通信。 – 2010-03-29 19:37:32

+0

我需要COM自動化來訪問Silverlight中的.NET Framework類,因此我必須創建一個OOB應用程序。據我所知,沒有辦法從WebBrowser控件加載OOB應用程序。 – JohnMcCon 2010-03-29 19:42:00

+1

@JohnMcCon:我不認爲你可以做你所描述的。你最好的選擇是Reed建議並使用javascript來實現Silverlight和WinForm應用程序之間的通信。 – 2010-03-29 19:45:29