学习运行时加载和解析XAML

 

WPF的运行时XAML解析器公开为两个类,它们都位于System.Windows.Markup命名空间中:XamlReader和XamlWriter,而且它们的API已经再简单不过了,XamlReader包含了一些对静态Load方法的重载,而XamlWriter包含了一些对静态Save方法的重载.
1、XamlReader
XamlReader.Load方法的设置将解析XAML,创建合适的.NET对象,然后返回一个根元素的实例.因此,如果在当前目录下有一个XAML文件叫作MyWindow.xaml,它包含一个Window对象,它包含了一个Window对象作为根结点,那么可以使用下面代码来加载和获得Window对象:
Window window=null;
using(FileStream fs=new FileStream("MyWindow.xaml",FileMode.Open,FileAccess.Read))
{
window=(Window)XamlReader.Load(fs);
}
这个情况下,Load是与FileStream(位于System.IO命名空间中)一起调用的,在Load返回之后,整个XAML文件的对象层级将在内存中被实例化,因此就不再需要XAML.在前面的代码,退出usiing代码块之后FileStream将被立即关闭,既然现在已经有一个根元素的实例存在,就可以利用适当的内容属性或者集合属性来获得子元素.下面代码假设Window有一个类为StackPanel的子元素,StackPanel的第5个子对象是一个OK Button(XamlReader定义了LoadAsync实例方法用于异步加载和解析XAML内容.例如,在加载大文件或者网络文件时,可以使用)
Window window=null;
using(FileStream fs=new FileStream("MyWindow.xaml",FileMode.Open,FileAccess.Read))
{
windo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值