在WPF/PRISM中,當你創建shell時,它將被分配到App.Current.MainWindow
。然而,在在瀏覽器中一個WPF(XBAP)的行:如何在XBAP/Prism中初始化Shell?
App.Current.MainWindow = (Window)Shell;
失敗,錯誤消息:
無法轉換類型的對象 'XBAPClient.Page1' 爲類型「System.Windows.Window 」。
protected override DependencyObject CreateShell()
{
return this.Container.GetExportedValue<Page1>();
}
protected override void InitializeShell()
{
base.InitializeShell();
App.Current.MainWindow = (Window)Shell;
App.Current.MainWindow.Show();
}
我怎樣才能加載的殼呢?
:
您應該只分配你的頁面窗口的內容是這樣的。所以你不能將Shell轉換爲Window。欲瞭解更多信息,請查看此主題:http://compositewpf.codeplex.com/discussions/31058?ProjectName=compositewpf – kmatyaszek
更新:我已遵循第一條評論。說明很好。但仍然沒有運氣。調查爲什麼它沒有運行。但至少它的建築。謝謝 – Houman
@kmatyaszek不幸的是''CreateShell'首先被調用,在'Page1.xaml.cs'可以設置'Bootstrapper.ShellPage = this'之前;因此它返回一個始終爲空的shell。你有什麼建議嗎? – Houman