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

来源:互联网 发布:太原网络公司白猫网络 编辑:程序博客网 时间:2024/06/08 08:46


== 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++代码中动态加载,耗费内存较小。


原创粉丝点击