在wince上使用Silverlight开发程序受关注的问题


== silverlight程序的基本框架 ==

参见我的其它博文及

http://geekswithblogs.net/WindowsEmbeddedCookbook/Default.aspx

http://www.cnblogs.com/wangkewei/archive/2009/12/22/1629869.html

 

== 加载速度和运行效率 ==

Siverlight程序加载的步骤中,主要是IXRApplication的CreateHostFromXaml方法比较耗时,该函数主要功能就是根据xaml文件的内容来生成一颗树,树里面包含着所有的节点,因此,耗时和xaml文件及其指向的资源文件相关,经测试,如果加载最简单的xaml文件,则只需20多ms,加载18k大小的xaml文件大概需要1.3s。

silverlight界面渲染的底层是基于GDI或directdraw的,效率不会比使用GDI开发的程序差。

 

== 程序生成的窗口 ==

有两种窗口:

1一般来说,程序运行时,每个xaml文件对应于一个窗口,表现为一颗visual tree(可视树),其window name是xaml文件的名称,class name是_XR_VISUAL_HOST_,用来显示界面;通过IXRVisualHost下的成员函数操作窗口,可通过其GetContainerHWND来获取窗口的句柄,通过EndDialog来关闭窗口。
2整个程序共用一个窗口:window name是空,class name是XRAppListenerWindowClass,用于监听消息。


== 加载xaml文件 ==

加载xaml文件有两种方法:

1资源:在CreateHost函数中调用xamlsrc->SetResource函数,即可加载资源中的xaml文件。

2文件:通过xamlsrc.SetFile函数来动态加载制定路径名上的xaml文件。

比如多种风格界面的更换,那重新调用CreateHost函数,在函数中判断风格加载不同的xaml文件。


== 新建窗口 ==

如果要创建一个新的窗口,则需要新建一个基于XAML2CPPBase的类,然后依照主窗口的创建过程,调用窗口的创建方法。


== 使用的内存 ==

silverlight程序使用的内存主要受程序员控制的,如果在运行程序前就把所有资源加入到工程中(即在xaml文件中静态加载),耗内存就大,反之,如果在Native C++代码中动态加载,耗费内存较小。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值