色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

將SL4 程序移植到WP7(附Teched2010真機(jī)圖)

  前不久WP7 已經(jīng)在國(guó)外上市,這意味著相應(yīng)的WP7 應(yīng)用程序和游戲將會(huì)蜂擁而至,由于之前研究過(guò)一陣SL,看到WP7 到來(lái)手便開(kāi)始發(fā)癢。本篇將原來(lái)一個(gè)SL 模擬Nano5 的程序移植到WP7,為大家簡(jiǎn)單演示一下移植過(guò)程。SL 程序請(qǐng)參考《Silverlight 模擬Nano5 界面效果》。

  素材移植

  注意,您的計(jì)算機(jī)上需要安裝Windows Phone Developer Tools。首先我們來(lái)新建一個(gè)WP7 應(yīng)用程序。

New

  由于SL 程序比較簡(jiǎn)單只包含一些圖片,所以將所有素材資源復(fù)制到WP7 項(xiàng)目。如下圖SL4 與WP7 項(xiàng)目列表對(duì)比。

SL4

WP7

  程序移植

  接下來(lái)先對(duì)XAML 程序進(jìn)行移植,原來(lái)SL4 程序里XAML 只有一個(gè)<Canvas>。

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

  在WP7 中需要將<Canvas> 放入ContentPanel <Grid>。

<!--ContentPanel - place additional content here-->
<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# 程序全部復(fù)制到WP7 中再逐一對(duì)錯(cuò)誤提示進(jìn)行修改和調(diào)整。

  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:不再需要支持不同瀏覽器的鼠標(biāo)滾輪事件。

public MainPage()
{
InitializeComponent();
addImages();
startShow();
}

  事件觸發(fā)

  SL4:通過(guò)MouseWheel 鼠標(biāo)滾輪事件來(lái)切換專輯封面。

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:通過(guò)ManipulationDelta 觸屏事件來(lái)完成。

private void ContentPanel_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
if (e.DeltaManipulation.Translation.X > 0)
{
moveIndex(1);
}
else
{
moveIndex(-1);
}
}

  測(cè)試運(yùn)行

  打開(kāi)WP7 模擬器后,原來(lái)的SL4 程序仍然可以在WP7 中正常運(yùn)行,唯一區(qū)別就是原來(lái)的鼠標(biāo)操作變?yōu)榱擞|屏操作。

Test

  總結(jié)

     當(dāng)然本篇的SL4 程序相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,沒(méi)有復(fù)雜的動(dòng)態(tài)效果或類庫(kù)調(diào)用。在本次Teched2010 大會(huì)也和泳濤兄(WP7 MVP)交流了一下。其實(shí)SL 程序移植到WP7 也并非易事。首先,要將原來(lái)SL 項(xiàng)目里所有使用的資源全部復(fù)制到WP7 項(xiàng)目。除圖、音、影以外,更重要的是項(xiàng)目中引用的類庫(kù),有些類庫(kù)可能在WP7 中并不支持。其次,要將SL 的XAML 代碼移植到WP7,所謂WP7 中的SL 開(kāi)發(fā)平臺(tái)只是SL 的一部分,也就是說(shuō)有些SL 的控件、屬性在WP7 不能使用,所以要做進(jìn)一步的調(diào)整。最后,要把C# 程序移植到WP7,這也是很復(fù)雜的過(guò)程,其中涉及的因素很多,可借助VS 強(qiáng)大的調(diào)試功能進(jìn)行修改。后續(xù)我還會(huì)對(duì)一些稍微復(fù)雜些的程序進(jìn)行移植,也希望大家分享自己的開(kāi)發(fā)經(jīng)驗(yàn)。

  源代碼:WP7Nano5.zip

  Teched2010

  最后上幾張Teched2010 中用于Demo 演示和展示的WP7 真機(jī)。機(jī)型:三星

  可以按自己的喜好設(shè)置主題顏色:

IMAG0037

IMAG0039

  手機(jī)游戲:刺客信條、極品飛車,都是大作啊!玩了一下極品飛車,運(yùn)行很流暢,通過(guò)重力感應(yīng)控制賽車轉(zhuǎn)向。

IMAG0038

  美中不足的是當(dāng)前WP7 本身還不支持中文輸入,也沒(méi)有手寫(xiě)輸入。要是用WP7 發(fā)短信可麻煩了,但似乎有第三方開(kāi)發(fā)的軟件可以支持。期待WP7 早日登陸國(guó)內(nèi)市場(chǎng)。

it知識(shí)庫(kù)將SL4 程序移植到WP7(附Teched2010真機(jī)圖),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 郁南县| 湘乡市| 崇州市| 岱山县| 大余县| 祁门县| 屏山县| 南乐县| 什邡市| 阿合奇县| 汶上县| 武冈市| 禹州市| 闸北区| 玉屏| 凤翔县| 衢州市| 吐鲁番市| 修武县| 盘山县| 义马市| 绿春县| 天气| 宁蒗| 龙江县| 慈利县| 江陵县| 什邡市| 西宁市| 吴桥县| 虎林市| 来安县| 铅山县| 清水河县| 鄂托克旗| 晋州市| 砚山县| 新邵县| 凤城市| 天门市| 本溪|