本节我将为大家讲解如何在Silverlight平台上实现上一节中的纸娃娃系统,即WPF->Silverlight的移植。
众所周知Silverlight是WPF的子集,Silverlight对像素位图的处理是在3.0版本之后才开始支持,本节我将大量的用到它: WriteableBitmap – 传说中神话的代言人。
移植过程分两步。
首先移植表现层xaml,大家需要特别注意的是Silverlight中ComboBoxItem中的IsSelected和Content与WPF中的有明显书写区别,不清楚为什么微软不对此进行一致化以便可以轻松移植。
接着移值逻辑代码:
首先创建绘图用对象WriteableBitmap writeableBitmap = new WriteableBitmap(200, 200);
接着定义平移对象TranslateTransform translateTransform = new TranslateTransform();
该对象将用于实现上一节中的x,y偏移处理。
然后同样的首先以绘制武器为例:
Image image = new Image();
image.Source = GetImage(
string.Format("/Image/Weapon_{0}.png",
(comboBox1.SelectedItem as ComboBoxItem).Content)
);
translateTransform.X = 18; translateTransform.Y = 18;
writeableBitmap.Render(image, translateTransform);
大家不妨与上一节的代码进行比较,就会发现非常之相似,只是用了不同的类工具替换罢了。
那么后面是同样的,逐层绘制其他部位:
//绘制身体
image.Source = GetImage(
string.Format("/Image/Body_{0}.png",
(comboBox2.SelectedItem as ComboBoxItem).Content)
);
translateTransform.X = 50; translateTransform.Y = 50;
writeableBitmap.Render(image, translateTransform);
//绘制左手
image.Source = GetImage(
string.Format("/Image/LeftHand_{0}.png",
(comboBox3.SelectedItem as ComboBoxItem).Content)
);
translateTransform.X = 72; translateTransform.Y = 52;
writeableBitmap.Render(image, translateTransform);
//绘制右手
image.Source = GetImage(
string.Format("/Image/RightHand_{0}.png",
(comboBox4.SelectedItem as ComboBoxItem).Content)
);
translateTransform.X = 98; translateTransform.Y = 59;
writeableBitmap.Render(image, translateTransform);
//绘制头部
image.Source = GetImage(
string.Format("/Image/Head_{0}.png",
(comboBox5.SelectedItem as ComboBoxItem).Content)
);
translateTransform.X = 86; translateTransform.Y = 38;
writeableBitmap.Render(image, translateTransform);
//绘制坐骑
image.Source = GetImage(
string.Format("/Image/Horse_{0}.png",
(comboBox6.SelectedItem as ComboBoxItem).Content)
);
translateTransform.X = 63; translateTransform.Y = 71;
writeableBitmap.Render(image, translateTransform);
全部绘制完后别忘记了将之提交writeableBitmap.Invalidate();
并将最终的合成图象赋值给精灵:
Spirit.Source = writeableBitmap;
是不是很神奇~原来移植可以这么简单的,更重要的,WriteableBitmap使我们能够在Silverlight中对像素位图进行处理,这难道不是伟大的历史时刻吗?
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/alamiye010/archive/2009/09/21/4574496.aspx
分享到:
相关推荐
**ArcGIS API for Silverlight 3.0** 是Esri公司推出的一款强大的地图和地理信息系统开发工具,专门针对Microsoft Silverlight平台设计。这个API允许开发者构建丰富的、交互式的Web应用程序,展示地图信息,进行地理...
**ArcGIS 3.1 for Silverlight** 是Esri公司推出的一款基于Silverlight技术的Web GIS开发框架。这款产品主要用于构建交互式的、丰富的地理信息系统应用,让用户能够在浏览器中享受到类似桌面应用的体验。ArcGIS API ...
ArcGIS Viewer for Silverlight是由Esri公司开发的一款基于Silverlight技术的轻量级GIS客户端应用,它提供了丰富的地图展示、交互和分析功能,使得开发者能够构建功能强大的在线地图应用。 该离线文档详细介绍了...
Json.NET For Silverlight API
ArcGIS API for Silverlight是Esri公司开发的一款用于构建地理信息系统(GIS)Web应用程序的开发框架,主要针对Microsoft Silverlight技术。此API使得开发者能够利用Silverlight的强大功能和丰富的用户体验来展示、...
### ArcGIS API for Silverlight 开发入门 #### 一、为何选择 Silverlight API? 随着信息技术的发展,GIS领域也需要不断地更新迭代以适应新的技术趋势。Silverlight作为一种新兴的技术平台,为GIS开发提供了新的...
ComponentOne Studio for Silverlight 2012 v3 1/3 一共有 3 个压缩文件,请全部下载后解压 ComponentOne Studio Silverlight 2012 v3 Silverlight UI Controls with Power and Style Get the controls and ...
**Telerik RadControls for Silverlight Beta2** 是一个专门针对微软Silverlight开发平台的UI控件库,由Telerik公司提供。这个库包含了丰富的用户界面元素,旨在帮助开发者快速、高效地构建出交互性强、视觉效果优秀...
ComponentOne Studio for Silverlight 2012 v3 1/3 一共有 3 个压缩文件,请全部下载后解压 ComponentOne Studio Silverlight 2012 v3 Silverlight UI Controls with Power and Style Get the controls and ...
ArcGIS API 3.3 for Silverlight
ComponentOne Studio for Silverlight 2013 v1 1/3 共三个压缩文件,请全部下载后解压 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take ...
ComponentOne Studio for Silverlight 2013 v1 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take advantage of everything Silverlight 5 has...
此应用实例是一个全功能的展示应用。运行调试通过,共享出来,大家参考、...实例充分利用的Silverlight 3的功能,比如:触发器、元件结合等,程序结构合理,实例开发了一系列的用户控件来构建应用,可复用性较强....
ComponentOne Studio for Silverlight 2013 v1 1/3 共三个压缩文件,请全部下载后解压 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take ...
Telerik UI for Silverlight是Telerik公司开发的一套完整的用户界面组件库,专门针对Microsoft的Silverlight技术。这个组件库提供了丰富的控件和工具,帮助开发者构建功能强大的、具有现代感的Web应用程序。2019 SP1...
目前最新的api for silverlight 版本,供学习使用。
【Telerik RadControls for Silverlight 5 2013 Q1 SP1 Demos】是Telerik公司推出的一款专门针对Silverlight 5平台的UI控件库,它为开发者提供了丰富的用户界面组件,用于构建高性能、高交互性的Web应用程序。...
【RadControls for Silverlight 5 2012.3】是Telerik公司推出的一套针对Silverlight 5平台的高级UI控件集,专为.NET开发者设计,旨在提升应用程序的用户界面体验和开发效率。这个版本是2012年3月的1017更新,提供的...