快捷搜索:

将SL4 程序移植到WP7(附Teched2010真机图)

Silverlight 4(SL4)和Windows Phone 7(WP7)大年夜家已经都很认识了,作为WP7 开拓框架之一的Silverlight,使广大年夜开拓者方便快捷的开拓WP7 利用法度榜样或游戏。假如您是一位SL 开拓职员,那WP7 的利用法度榜样开拓也会使你轻车熟路。

前不久WP7 已经在国外上市,这意味着响应的WP7 利用法度榜样和游戏将会蜂拥而至,因为之前钻研过一阵SL,看到WP7 到来手便开始发痒。本篇将原本一个SL 模拟Nano5 的法度榜样移植到WP7,为大年夜家简单演示一下移植历程。SL 法度榜样请参考《Silverlight 模拟Nano5 界面效果》。

素材移植

留意,您的谋略机上必要安装Windows Phone Developer Tools。首先我们来新建一个WP7 利用法度榜样。

因为SL 法度榜样对照简单只包孕一些图片,以是将所有素材资本复制到WP7 项目。如下图SL4 与WP7 项目列表比较。

法度榜样移植

接下来先对XAML 法度榜样进行移植,原本SL4 法度榜样里XAML 只有一个。

Canvas x:Name="LayoutRoot" MouseLeftButtonDown="LayoutRoot_MouseLeftButtonDown" />

在WP7 中必要将 放入ContentPanel 。

Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"

ManipulationDelta="ContentPanel_ManipulationDelta">

Canvas x:Name="imageList" Background="Transparent"/>

Grid>

下面移植C# 法度榜样,可以将SL4 的C# 法度榜样整个复制到WP7 中再一一对差错提示进行改动和调剂。

MainPage() 措施

SL4:

public MainPage()

{

InitializeComponent();

addImages();

HtmlPage.Window.AttachEvent("DOMMouseScroll", LayoutRoot_MouseWheel);

HtmlPage.Window.AttachEvent("onmousewheel", LayoutRoot_MouseWheel);

HtmlPage.Document.AttachEvent("onmousewheel", LayoutRoot_MouseWheel);

startShow();

}

WP7:不再必要支持不合浏览器的鼠标滚轮事故。

public MainPage()

{

InitializeComponent();

addImages();

startShow();

}

事故触发

SL4:经由过程MouseWheel 鼠标滚轮变糊弄切换专辑封面。

private void LayoutRoot_MouseWheel(object sender, HtmlEventArgs args)

{

double mouseDelta = 0;

ScriptObject e = args.EventObject;

// Mozilla and Safari

if (e.GetProperty("detail") != null)

{

mouseDelta = ((double)e.GetProperty("detail"));

}

// IE and Opera

else if (e.GetProperty("wheelDelta") != null)

mouseDelta = ((double)e.GetProperty("wheelDelta"));

mouseDelta = Math.Sign(mouseDelta);

moveIndex((mouseDelta > 0) ? 1 : -1);

}

WP7:经由过程ManipulationDelta 触屏变糊弄完成。

private void ContentPanel_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)

{

if (e.DeltaManipulation.Translation.X > 0)

{

moveIndex(1);

}

else

{

moveIndex(-1);

}

}

测试运行

打开WP7 模拟器后,原本的SL4 法度榜样仍旧可以在WP7 中正常运行,独一差别便是原本的鼠标操作变为了触屏操作。

总结

当然本篇的SL4 法度榜样相对来说对照简单,没有繁杂的动态效果或类库调用。在本次Teched2010 大年夜会也和泳涛兄(WP7 MVP)交流了一下。着实SL 法度榜样移植到WP7 也并非易事。首先,要将原本SL 项目里所有应用的资本整个复制到WP7 项目。除图、音、影以外,更紧张的是项目中引用的类库,有些类库可能在WP7 中并不支持。其次,要将SL 的XAML 代码移植到WP7,所谓WP7 中的SL 开拓平台只是SL 的一部分,也便是说有些SL 的控件、属性在WP7 不能应用,以是要做进一步的调剂。着末,要把C# 法度榜样移植到WP7,这也是很繁杂的历程,此中涉及的身分很多,可借助VS 强大年夜的调试功能进行改动。后续我还会对一些轻细繁杂些的法度榜样进行移植,也盼望大年夜家分享自己的开拓履历。

源代码

WP7Nano5.zip

Teched2010

着末上几张Teched2010 顶用于Demo 演示和展示的WP7 真机。机型:三星

可以按自己的喜爱设置主题颜色:

手机游戏:刺客信条、极品飞车,都是大年夜作啊!玩了一下极品飞车,运行很流通,经由过程重力感应节制赛车转向。

美中不够的是当前WP7 本身还不支持中文输入,也没有手写输入。如果用WP7 发短信可麻烦了,但彷佛有第三方开拓的软件可以支持。等候WP7 早日登岸海内市场。

转自:http://www.cnblogs.com/gnielee/archive/2010/12/03/sl4-to-wp7.html

您可能还会对下面的文章感兴趣: