999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

WP8 Metro開(kāi)發(fā)

2014-11-19 14:39:32高立軍
科技創(chuàng)新導(dǎo)報(bào) 2014年17期

高立軍

摘 要:Windows 8是微軟公司于2012年推出的繼Windows7之后的新一代電腦操作系統(tǒng),采用與Windows Phone 8相同的NT 內(nèi)核,該操作系統(tǒng)除了具備微軟適用于筆記本電腦和臺(tái)式機(jī)平臺(tái)的傳統(tǒng)窗口系統(tǒng)顯示方式外,還特別強(qiáng)化適用于觸控屏幕的平板電腦設(shè)計(jì),使用了新的接口風(fēng)格Metro,這種應(yīng)用程序和我們傳統(tǒng)看到的Windows應(yīng)用最大的不同就是它是為觸摸屏設(shè)備而設(shè)計(jì)的。

關(guān)鍵詞:Metro 開(kāi)發(fā)模式 窗口和布局

中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2014)06(b)-0039-02

在新的開(kāi)始菜單里,Win8在支持觸摸屏的同時(shí),定義了一套在Win8上面的手勢(shì)語(yǔ)言。Win8為觸摸設(shè)備提供的觸摸鍵盤,使用體驗(yàn)感覺(jué)很好,很靈敏,按下去在屏幕上會(huì)有被按的效果。除此之外,Win8還帶來(lái)了以下的幾個(gè)新特性:支持ARM * 2;Win8一個(gè)賬戶可以伴隨著你在不同的設(shè)備上;更加有效的App管理方式;支持多種設(shè)備,多種屏幕尺寸;更加社交化,以及和微博無(wú)縫整合。

1 Windows 8 開(kāi)發(fā)模式

目前Metro app支持三種不同的開(kāi)發(fā)模式:(1)XAML+C#/VB;(2)XAML/DirectX+C++;(3)HTML5+JS+CSS,組成部分Model、View、ViewModel。View是指UI界面。ViewModel是View的抽象,負(fù)責(zé)View與Model之間信息轉(zhuǎn)換,將View的Command傳送到Model。Model是數(shù)據(jù)訪問(wèn)層。

2 MVVM(Model-View-ViewModel)

View與ViewModule連接可以通過(guò)下面的方式:Binding Data實(shí)現(xiàn)數(shù)據(jù)的傳遞。command實(shí)現(xiàn)操作的調(diào)用,ttachBehavior實(shí)現(xiàn)控件加載過(guò)程中的操作。View沒(méi)有大量代碼邏輯。結(jié)合WPF、Silverlight綁定機(jī)制,MVP演變出了MVVM,充分利用了WPF、Silverlight的優(yōu)勢(shì),將大量代碼邏輯、狀態(tài)轉(zhuǎn)到 ViewModel,可以說(shuō)MVVM是專門為WPF、Silverlight打造的。View綁定到ViewModel,然后執(zhí)行一些命令在向它請(qǐng)求一個(gè)動(dòng)作。而反過(guò)來(lái),ViewModel跟Model通訊,告訴它更新來(lái)響應(yīng)UI。這樣便使得為應(yīng)用構(gòu)建UI非常的容易。往一個(gè)應(yīng)用程序上貼一個(gè)界面越容易,外觀設(shè)計(jì)師就越容易使用Blend來(lái)創(chuàng)建一個(gè)漂亮的界面。同時(shí),當(dāng)UI和功能越來(lái)越松耦合的時(shí)候,功能的可測(cè)試性就越來(lái)越強(qiáng)。Windows 8中可以啟動(dòng)多個(gè)應(yīng)用并在其中切換,我們沒(méi)有必要擔(dān)心降低系統(tǒng)速度或消耗電池電量,因?yàn)橄到y(tǒng)會(huì)自動(dòng)掛起(有時(shí)會(huì)終止)在后臺(tái)正在運(yùn)行的應(yīng)用。設(shè)計(jì)良好的應(yīng)用可以由系統(tǒng)掛起、終止以及重新啟動(dòng)來(lái)體現(xiàn),并且在這過(guò)程中看起來(lái)該應(yīng)用一直在運(yùn)行。

3 Metro Application原理

(1)當(dāng)激活了應(yīng)用時(shí),無(wú)論任何原因,系統(tǒng)都會(huì)發(fā)送Activated事件;(2)每當(dāng)用戶切換到桌面或其他應(yīng)用時(shí),系統(tǒng)都會(huì)掛起你的應(yīng)用,系統(tǒng)會(huì)發(fā)送Suspending事件;(3)每當(dāng)用戶切回到你的應(yīng)用時(shí),系統(tǒng)就會(huì)恢復(fù)你應(yīng)用,系統(tǒng)會(huì)發(fā)送Resuming事件。

當(dāng)用戶啟動(dòng)應(yīng)用程序,該應(yīng)用在生命周期中可以發(fā)生哪些變化呢?(1)運(yùn)行的應(yīng)用,可以進(jìn)行掛起,變成掛起的應(yīng)用;(2)掛起的應(yīng)用,可以進(jìn)行恢復(fù),變成運(yùn)行的應(yīng)用;(3)掛起的應(yīng)用,如果系統(tǒng)內(nèi)存不足,將直接被干掉。

在任何桌面應(yīng)用程序中,窗口都是基本的組成要素,以至于操作系統(tǒng)都根據(jù)它命名。盡管Metro提供了導(dǎo)航應(yīng)用程序的模型,該模型用于創(chuàng)建能夠?qū)⑷蝿?wù)分割到單獨(dú)頁(yè)面中的應(yīng)用程序,但是對(duì)于創(chuàng)建應(yīng)用程序,窗口仍然是這一領(lǐng)域的象征。

4 窗口

Window類繼承自ContentControl類,這意味著它只能包含當(dāng)子元素(通常是一個(gè)布局容器,如Grid控件),并且可以使用由Background屬性設(shè)置的畫刷繪制背景。通常還可以使用BorderBrush和BorderThickness屬性在在窗口周圍添加邊框,但是 該邊框會(huì)被添加到窗口框架之內(nèi)(在客戶去邊緣周圍)??梢酝ㄟ^(guò)將WindowStyle屬性設(shè)置為None完全移除窗口框架,從而可以創(chuàng)建一個(gè)完全定制的窗口。此外Window類還添加了不少部分成員,任何一個(gè)Windows編程人員都會(huì)熟悉這些成員。最明顯的是與外觀相關(guān)的屬性,使用這些屬性可以改變窗口客戶區(qū)部分的顯示方式。Application類提供了用于訪問(wèn)其他窗口的兩個(gè)工具:MainWindow和Windows屬性。如果希望使用更靈活的方式跟蹤窗口,可以在Applocation類中添加靜態(tài)屬性。窗口交互是指獲取其他窗口的引用。作為通信規(guī)則,應(yīng)當(dāng)竟可能的減少窗口之間的交互需要,因?yàn)檫@會(huì)沒(méi)有必要的增加代碼的復(fù)雜性,如果確實(shí)需要根據(jù)一個(gè)窗口的動(dòng)作修改另一個(gè)窗口的控件,可以在目標(biāo)窗口中添加一個(gè)方法,從而使窗口的接口變得簡(jiǎn)單易行。對(duì)于時(shí)髦的客戶端應(yīng)用程序,經(jīng)常會(huì)使用形狀不規(guī)則的窗口,且對(duì)于Metro應(yīng)用程序使用不規(guī)則窗口會(huì)更常見(jiàn)。在Metro中創(chuàng)建和使用基本形狀的窗口是非常容易的,然而創(chuàng)建精致的、具有專業(yè)外觀的窗口需要完成更多工作,并且很可能需要由優(yōu)秀的圖形設(shè)計(jì)人員創(chuàng)建輪廓并設(shè)計(jì)背景插圖。

5 布局

Windows 8為開(kāi)發(fā)人員提供豐富的布局控件,以達(dá)到應(yīng)用布局設(shè)計(jì)需求。其中包括:* Grid、Canvas、StackPanel、WrapGrid、VariableSized WrapGrid、Virtualizing StackPanel以上布局控件皆派生自Panel類,而Panel類可以裝載不同類型的控件作為子控件。Grid是類似于HTML表格的一種布局控件,由于其靈活性高,所以在應(yīng)用設(shè)計(jì)中經(jīng)常被使用到。一個(gè)Grid控件包含一個(gè)Row(行)和Column(列)的集合。開(kāi)發(fā)人員可以將不同的對(duì)象控件布置在不同的行列中,達(dá)到位置控制的效果。endprint

6 事件與命令

剛開(kāi)始接觸Metro時(shí),可能會(huì)在自己并不知曉的情況下就用到了路由事件。例如,當(dāng)在Visual Studio設(shè)計(jì)器中向窗口添加一個(gè)按鈕,并將其命名為myButton,然后雙擊該按鈕時(shí),Click事件將掛接在XAML標(biāo)記之內(nèi),它的事件處理程序會(huì)添加到Window類的代碼隱藏中。這種感覺(jué)與在 Windows 窗體和ASP.NET中掛接事件并無(wú)二樣。實(shí)際上,它比較接近ASP.NET的代碼編寫模型,但更類似Windows窗體的運(yùn)行時(shí)模型。

路由事件概述。

7 路由事件

氣泡事件最為常見(jiàn),它表示事件從源元素?cái)U(kuò)散(傳播)到可視樹,直到它被處理或到達(dá)根元素。這樣就可以針對(duì)源元素的上方層級(jí)對(duì)象處理事件。例如,可向嵌入的Grid元素附加一個(gè)Button.Click處理程序,而不是直接將其附加到按鈕本身。氣泡事件有指示其操作的名稱(例如,MouseDown)。隧道事件采用另一種方式,從根元素開(kāi)始,向下遍歷元素樹,直到被處理或到達(dá)事件的源元素。這樣上游元素就可以在事件到達(dá)源元素之前先行截取并進(jìn)行處理。根據(jù)命名慣例,隧道事件帶有前綴Preview(例如PreviewMouseDown)。直接事件類似.NET Framework中的正常事件。該事件唯一可能的處理程序是與其掛接的委托。通常,如果為特殊事件定義了隧道事件,就會(huì)有相應(yīng)的氣泡事件。在這種情況下,隧道事件先觸發(fā),從根元素開(kāi)始,下行至源元素,查找處理程序。一旦它被處理或到達(dá)源元素,即會(huì)觸發(fā)氣泡事件,從源元素上行,查找處理程序。氣泡或隧道事件不會(huì)僅因調(diào)用事件處理程序而停止路由。如果想中止隧道或氣泡進(jìn)程,可使用傳遞的事件參數(shù)在事件處理程序中將事件標(biāo)記為已處理。一旦的處理程序?qū)⑹录?biāo)記為已處理,該事件便不會(huì)傳給任何其他處理程序。實(shí)際上,事件路由仍在繼續(xù)起作用,可利用UIElement.AddHandler的替換方法在代碼中顯式掛接事件處理程序,該方法有一個(gè)額外的標(biāo)記,可以有效指出“即使事件被標(biāo)記為已處理也可調(diào)用我”。為了讓元素能處理在不同元素中聲明的事件,WPF支持附加事件。附加事件也是路由事件,它支持元素 XAML 形式的掛接,而非聲明事件所用的類型。例如,如果想要Grid偵聽(tīng)采用氣泡方式通過(guò)的Button.Click事件,僅需按如下所示進(jìn)行掛接即可。 。

8 命令系統(tǒng)的基本元素

命令(Command):實(shí)現(xiàn)了ICommand接口的類,經(jīng)常使用的有RoutedCommand類。命令源:是命令的發(fā)送者,是實(shí)現(xiàn)了ICommandSource接口的類,大部分界面的控件都實(shí)現(xiàn)了這個(gè)接口,Button,MenuItem等等。命令目標(biāo):命令的接收者,命令目標(biāo)是實(shí)現(xiàn)了IInputElement接口的類。命令關(guān)聯(lián):負(fù)責(zé)一些邏輯與命令關(guān)聯(lián)起來(lái),比如判斷命令是否可以執(zhí)行,以及執(zhí)行完畢后做一些處理。四個(gè)命令元素之間的關(guān)系:在Windows Store app開(kāi)發(fā)中,數(shù)據(jù)綁定非常的重要,它提供了一個(gè)簡(jiǎn)單的方法,使我們的程序可以很方便的顯示數(shù)據(jù)并與數(shù)據(jù)進(jìn)行交互。數(shù)據(jù)綁定:數(shù)據(jù)綁定在UI控件中顯示數(shù)據(jù)是非常重要的一部分內(nèi)容。當(dāng)任意一個(gè)UI控件使用了綁定,那么它將會(huì)顯示出相應(yīng)的數(shù)據(jù)。當(dāng)然,很重要的一個(gè)因素就是當(dāng)綁定的數(shù)據(jù)發(fā)生了改變,此時(shí)UI控件顯示的內(nèi)容就會(huì)自動(dòng)的改變。同樣,當(dāng)用戶在UI控件上做了改變,這些變動(dòng)的數(shù)據(jù)也會(huì)被自動(dòng)保存到數(shù)據(jù)對(duì)象中。

參考文獻(xiàn)

[1] 歐運(yùn)娟.windows系統(tǒng)管理與應(yīng)用[M].北京:人民郵電出版社,2014.

[2] Jeremy Likness.windows8應(yīng)用開(kāi)發(fā)[M].北京:人民郵電出版社,2014.endprint

主站蜘蛛池模板: 91精品国产丝袜| 欧美在线国产| 萌白酱国产一区二区| 成人免费视频一区| 成年网址网站在线观看| 久草网视频在线| 真实国产精品vr专区| 99手机在线视频| 国产精品尹人在线观看| 亚洲日韩在线满18点击进入| AV色爱天堂网| 国产福利在线免费观看| 国产成人精品18| 欧美精品不卡| 天天色综网| 999精品免费视频| 久久性视频| 99视频有精品视频免费观看| 国产精品主播| av天堂最新版在线| 中字无码精油按摩中出视频| 国产精品开放后亚洲| 国产欧美专区在线观看| 国产农村妇女精品一二区| 国产99在线| 国产91丝袜在线播放动漫 | 国产精品30p| 国产无码精品在线| 全免费a级毛片免费看不卡| 伊人色在线视频| 国产九九精品视频| 国产大全韩国亚洲一区二区三区| 国产成年女人特黄特色毛片免 | 又爽又大又黄a级毛片在线视频 | 国产精品一老牛影视频| a级毛片免费播放| 国产精品亚欧美一区二区三区 | 国产精品手机在线播放| 试看120秒男女啪啪免费| 91青青草视频| 国产麻豆精品久久一二三| 免费a在线观看播放| 亚洲欧美日韩高清综合678| 亚洲国产中文在线二区三区免| 久久久久免费看成人影片| 奇米影视狠狠精品7777| 久久黄色毛片| 国产日韩精品一区在线不卡| 天堂成人av| 国产精品一区二区国产主播| 亚洲AV无码久久天堂| 一级成人a做片免费| 色婷婷电影网| 国产精品一区在线麻豆| 中文精品久久久久国产网址 | 天堂在线www网亚洲| 国产高清在线观看91精品| 福利在线一区| 亚洲AV无码久久精品色欲| 青青草国产精品久久久久| 亚洲国产一区在线观看| 一级全免费视频播放| 亚洲视频免费在线看| 国产人前露出系列视频| 99在线国产| 久久精品人妻中文视频| 欧美日韩免费在线视频| 国产精品入口麻豆| 亚洲中文字幕久久无码精品A| 久久精品中文字幕免费| 伊人成人在线| 一本一本大道香蕉久在线播放| 美女一级免费毛片| 国产在线八区| 99热国产这里只有精品9九| www精品久久| 国产精品永久久久久| 99热这里只有精品5| 高清视频一区| 欧美中文字幕无线码视频| 狠狠色狠狠综合久久| 欧美日韩午夜|