2013-08-23 49 views
1

在代碼隱藏方面,我需要從XAML資源中加載一個Page對象,並且我明確需要將結果作爲Page類對象的一個​​實例。我搜索了四周,發現了一些涉及XamlReader等的解決方案,但它們都顯得有點奇怪和複雜,幾乎就像黑客。有沒有簡單和「正常」的方式來做到這一點?如何從xaml文件/資源​​動態加載頁面?

回答

1
Page p = (Page)Application.LoadComponent(new Uri(@"relative/uri/to/xaml/file.xaml", UriKind.Relative)); 

see msdn reference page for few more details

+1

@tnw我在做慣用的「前問題」的研究,並不能找到任何真正有用的甚至SO,我在問題本身寫的,只是一些非常哈克和不必要的複雜解決方案。然後我偶然偶然發現了這個解決方案,它似乎是最乾淨,最簡單,最正確的解決方案。也是一個只有一條線。我決定將q + a加入到SO中,以便我在搜索時對我有用,因此該網站不會讓失敗的人在我之後尋找這個信息。到底什麼是可疑或錯誤的? –

+1

另外,究竟是什麼是基於意見的陳述一個命令/函數調用的例子,以及官方語言和平臺dev的文檔頁面的鏈接,這很好地解釋了該方法是**設計和意圖**執行的東西問的問題? –

+0

Silverlight只有一個版本的LoadComponent(http://msdn.microsoft.com/en-us/library/ms596995.aspx),所以你必須使用類似Page p = new Page(); Application.LoadComponent(p,new Uri(「YourAssemblyName; component/yourpagesfolder/somepage.xaml」,UriKind.Relative));並且您的Page元素需要是xaml文件 –