2010-10-27 151 views
1

是否可以在運行時創建WPF窗口控件?我想本質上是一個有點黑客解決方案的問題,但我基本上希望能夠有一個dll,它允許我動態加載一個WPF窗口並編譯它後面的相關代碼(從一個xaml和cs文件)。我假設我也將不得不手動加載代碼隱藏需要的任何程序集。在運行時創建WPF窗口

這會給我創建模塊化插件的能力,允許Windows從另一個應用程序運行而不被編譯到源代碼中。

有幾個關於這個主題的SO帖子,但沒有一個專門處理窗口/代碼創建。

如果這是不可能的(或者只是真的沒有reccomended)想法替代品將不勝感激。

乾杯,

凱爾

回答

1

我會建議尋找到像MEF,而不是技術。現在,它直接包含在框架中,但允許您將第三方代碼/窗口/視圖/視圖模型直接「注入」到您的應用程序中,而無需分發您的應用程序。

您可以提供簡單的接口,而不是嘗試編譯應用程序中的代碼,而讓MEF爲您編寫應用程序。這是一個更容易,更靈活的選擇。

我以前用過ViewModels和ResourceDictionaries包含DataTemplates的合約。這使您可以在邏輯(ViewModel)及其關聯的視圖中執行完全動態的運行時注入,並在運行時將其包裝在Window中。

+0

非常感謝,這聽起來像這可能是一個更易於管理的解決方案。我會檢查出來的。 – Kyle 2010-10-27 05:11:33