2013-08-23 47 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文件 –