WPF编程:使用XamlReader类动态加载XAML文件

更新时间:2023-07-25 06:25:02 阅读: 评论:0

我们知道在WPF中窗口的属性,窗口中预先加进去的所有控件的属性,还有三维场景都由这个窗口的xaml文件来描述,而一些优秀的3D建模软件,如拥抱希望 ZAM 3D,具有导出XAML的功能,我们可以把导出的XAML文件的内容直接复制到窗口的XAMl中,这样原来做好的3D模型就能在WPF中展示而不用改动代 码,也不用自己写转化代码,实在是一件很方便的事。
有人会问,我不把导出的XAML文件的内容复制到窗口的河流治理XAML文件中,而是在程序运行时,动态的创建一个窗口,在 个窗口中加载XAML作为其Content不行吗?
答案是令人振奋的,可以!命名空间System.Windows.Markup中有个XamlReader类可以帮助我们完成它。
下面是一段C#代码:
1
2
3
4
5
6青少年逆反心理
7
8
9
10
11
12
13
14
//创建文件,读取3.xaml文件的内容
static FileStream fs = new FileStream("3.xaml", FileMode.Open, FileAccess.Read);
/* 调用XamlReader//Load方法,从上面的文件流中创建3D对象,
量角尺 火箭飞人* 由于3.xaml的根节点是ViewPort3D,所以这里创建的是ViewPort3D
 */
Viewport3D vp2 = (Viewport3D)System.Windows.Markup.XamlReader.Load(fs); 
 //创建一个新窗口
Window anew=new Window(); 
手机怎样省电
//将新窗口的Content属性设为vp2,类型为ViewPort3D
anew.Content=vp2;   
/*
some code of window property
*/
anew.show();    //显示新窗口
需要说下,XamlReader类共有两个,一个是System.Windows.Markup下的,一个是System.Xaml下的,这里用的 是前者,后者没有快捷菜单Load方法。文件流中用到的兔子速度3.xaml位于_inDebug目录下,即与生成的程序位于同一目录,这点不要搞错了,不然会报异常。 FileStream类位于命名空间System.IO

本文发布于:2023-07-25 06:25:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1115981.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   位于   不用   控件   属性   流中   目录
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图