拥有完整硬件访问权限的本地Silverlight

时间:2022-01-07 05:21:14

Silverlight Embedded是专门为嵌入式设备设计的,那些设备不一定拥有网络连接能力,或者只会偶尔连接。它选择XAML作为UI层,从而嵌入式系统的设计师和开 发人员可以实现工作的分离,就像.NET和Web开发人员一样。但是硬件的限制意味着本地编程语言更适合。

重要的是要注意到这并不是Windows 8或者WinRT。Silverlight Embedded拥有对操作系统暴露出来的Win32 API以及硬件的完整访问权限。在Silverlight之下,所有遗留的Windows Embedded类库都可以继续使用。

也就是说,它们之间有类似之处。例如,通过DirectDraw或者OpenGL提供了硬件加速图形(Hardware accelerated graphics),但那并不是必须的。在Silverlight Embedded中可以使用一般的XAML绑定表达式支持数据绑定。在代码端,模型需要实现IXRPropertyBag接口而不是INotifyPropertyChanged。想要了解其他区别,你可以查看Silverlight 3和Silverlight Embedded之间的比较一文。

Silverlight for Embedded的第一个版本是为Windows Embedded CE 6 Release 3发布的。这个版本拥有基于Silverlight 2 的API。下一个版本针对Windows Embedded Compact 7,它会使用Silverlight 3的API。第一个版本的工具很粗糙,但是微软声称新的版本会更加成熟。想要开始使用它,所需工具有:

  • Visual Studio 2008
  • Expression Blend 3
  • Silverlight for Embedded SDK
  • Platform Builder 7

platform builder是特别引入的: 这个工具会为Expression Blend的Silverlight/XAML项目创建C++项目的框架。在运行工具之前,需要对将要访问的控件命名,并注册事件处理程序。表示它们的字 段和回调函数会在得到的C++头文件和代码文件中自动生成。当XAML发生改变时,就需要重新应用工具以更新生成的代码。

在Silverlight Embedded还提供了像动画之类的功能。故事板(storyboard)是在Expression Blend中创建的,就像你构建Silverlight for web或者Silverlight for Windows Phone应用程序一样。当然,我们必须小心避免使用对于目标硬件过于复杂的动画。你可以在视频创建和使用Silverlight for Embedded应用程序中看到演示。