Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从xaml文件/资源动态加载页面?_C#_Wpf_Xaml_Dynamic_Loading - Fatal编程技术网

C# 如何从xaml文件/资源动态加载页面?

C# 如何从xaml文件/资源动态加载页面?,c#,wpf,xaml,dynamic,loading,C#,Wpf,Xaml,Dynamic,Loading,在codebehind中,我需要从XAML资源加载一个Page对象,并且我明确地需要结果是Page类的对象的实例。我四处搜索,找到了一些涉及XamlReader之类的解决方案,但它们看起来都有点奇怪和复杂,几乎像黑客。有什么简单而“正常”的方法吗 Page p = (Page)Application.LoadComponent(new Uri(@"relative/uri/to/xaml/file.xaml", UriKind.Relative)); @tnw我在做通常的“问题前”研究,甚至

在codebehind中,我需要从XAML资源加载一个Page对象,并且我明确地需要结果是Page类的对象的实例。我四处搜索,找到了一些涉及XamlReader之类的解决方案,但它们看起来都有点奇怪和复杂,几乎像黑客。有什么简单而“正常”的方法吗

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


@tnw我在做通常的“问题前”研究,甚至找不到任何真正有用的东西,正如我在问题本身中所写的,只是一些非常粗糙和不必要的复杂解决方案。然后我偶然发现了这个解决方案,它似乎是最干净、最简单、最正确的解决方案。也是一个单一的,只是一行。我决定将q+a添加到SO中,这对我搜索时很有用,这样网站就不会让在我之后寻找这些信息的人失望。关于这一点,究竟有什么可疑或错误?另外,基于命令/函数调用示例的意见究竟是什么,还有一个指向官方语言与平台开发人员文档页面的链接,该页面几乎解释了该方法的设计目的是为了执行问题所提出的内容?Silverlight只有一个版本的LoadComponent(),因此您必须使用类似于page p=new page()的内容;LoadComponent(p,新Uri(“YourAssemblyName;component/yourpagesfolder/somepage.xaml”,UriKind.Relative));你的页面元素必须是xaml文件的根元素…更正我之前的评论,它是/YourAssemblyName,例如新Uri(“/MyApp;component/Pages/MyPage.xaml”,UriKind.RelativeOrAbsolute)@tnw我在做通常的“问题前”研究,即使这样也找不到任何真正有用的东西,正如我在问题本身中所写的,只是一些非常粗糙和不必要的复杂解决方案。然后我偶然发现了这个解决方案,它似乎是最干净、最简单、最正确的解决方案。也是一个单一的,只是一行。我决定将q+a添加到SO中,这对我搜索时很有用,这样网站就不会让在我之后寻找这些信息的人失望。关于这一点,究竟有什么可疑或错误?另外,基于命令/函数调用示例的意见究竟是什么,还有一个指向官方语言与平台开发人员文档页面的链接,该页面几乎解释了该方法的设计目的是为了执行问题所提出的内容?Silverlight只有一个版本的LoadComponent(),因此您必须使用类似于page p=new page()的内容;LoadComponent(p,新Uri(“YourAssemblyName;component/yourpagesfolder/somepage.xaml”,UriKind.Relative));您的页面元素必须是xaml文件的根元素…更正我之前的评论,它是/YourAssemblyName,例如新Uri(“/MyApp;component/Pages/MyPage.xaml”,UriKind.RelativeOrAbsolute)