版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
在前一篇已經(jīng)介紹XAML概念:“XAML語言是ExtensibleApplicationMarkupLanguage的簡稱,英文發(fā)音是“zammel”,中文稱為“可擴展應(yīng)用程序標記語言”,該語言是基于ExtensiveMarkupLanguage(XML)可擴展標記語言,主要用于Silverlight,WPF,WindowsPhone以及Windows8應(yīng)用開發(fā),并且用于描述.Net層次型結(jié)構(gòu)對象?!睋Q句話說,XAML不僅可被用于多種平臺應(yīng)用UI設(shè)計,而且可以使用層次型結(jié)構(gòu)描述一個對象,這樣使UI開發(fā)更加規(guī)范,設(shè)計工具的統(tǒng)一,使得開發(fā)人員和設(shè)計人員之間無縫結(jié)合,項目開發(fā)流程更佳規(guī)范和順暢。XAML是一種敏感型,聲明性語言,對于字符大小寫有嚴格的約束,在項目中,以".xaml"作為文件擴展名。XAML頁面和ASP.NET的ASPX頁面類似,都具有一個后臺代碼文件控制頁面邏輯處理,這一機制將用戶界面設(shè)計和后臺代碼設(shè)計分割,這意味著項目美工人員可以使用ExpressionBlend進行XAML用戶界面設(shè)計,同時后臺代碼開發(fā)人員可在VisualStudio中共享該XAML文件,并同時設(shè)計其后臺代碼。XAML學習方法和經(jīng)驗根據(jù)微軟OpenSpecificationPromise(OPS)program文檔介紹,XAML文檔是一個XML文檔,在一定程度上XAML繼承了大量的XML概念,而最重要的兩個概念分別是Element(元素)的定義和Property(屬性)的使用。所以,如果你熟悉XML,其實已經(jīng)具備XAML語法基礎(chǔ),如果你具有XML開發(fā)經(jīng)驗,學習XAML將會事半功倍。理解和掌握XAML語言最簡單的方法是使用具有XAML視圖工具和XAML代碼相互比較學習,這樣會更形象化理解XAML的使用。例如使用VisualStudio或ExpressionBlend等。使用設(shè)計工具,可以同時顯示XAML代碼和設(shè)計視圖效果,并且設(shè)計視圖效果能夠根據(jù)XAML代碼更新即時更新。值得注意的是,微軟為開發(fā)人員和設(shè)計人員提供了方便快捷的設(shè)計方式,使用簡單的拖拽即可完成一個控件或者頁面的聲明,但是作為一名專業(yè)開發(fā)人員,需要對XAML代碼理解和掌握,否則一旦遇到復(fù)雜項目,將會出現(xiàn)XAML開發(fā)瓶頸。在開始介紹XAML基礎(chǔ)前,首先創(chuàng)建一個實例項目,通過實例項目代碼幫助學習XAML語言。在VisualStudio11中創(chuàng)建一個Windows8MetroStyle空白頁面項目,項目名“XamIGuide",因Solution'XamlGuide'(1project)J畫XamEGutdeAPropertiesReferences因Solution'XamlGuide'(1project)J畫XamEGutdeAPropertiesReferences■Assets0CommonPl>l>|>|>c?c#c#c#□c#BindableEla^e.c^BooleanNegation匚cnverter.csBooleanTciViEibilityConverter.esLay&utAwarePage.csReadMe.txtRichTextColumns.cE?StandardStyIe^.xam[(DApp.xamlt>哲App.xaml.esElankPage.xamIt>哲BlankPage.xamLcs樣式贊源資源目錄文件默認內(nèi)容頁面:::SOLUTIONEXPLORER::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::▼平乂?溺討匣]|廬詡Q|。區(qū)|?詡SearchSo^tionExplorer(Ctrf+;) fi*■銀光中國2腳砂ghtCHINA犧■銀光中國2腳砂ghtCHINASOLUTIONEXPLORER匚ODEANALYSISTEAMEXPLORER默認BiankPage.xamI代碼:El<Pegex:Class='1XamlGuide.BlankPage" 命名空間xmlns="http://schemas,microsoft.€0ri!t/winfx/2006/Kaml/presentation1'xmlns:x=,1http://schemas.microsoft.corB/win-Fx/2006/Kaml'1xmlnszloca^'1usingXamlGuide'1xmlns:d="/expxmlns:mc="http://schemas.apenK/rnarkup-conipatibility/20061me:工ErwrwbWd"》<GridBackground=''{StaticResourceApplicationPageBackgroundBrush}">v/Grid》VP畤〉 默認布局控件GridXAML基礎(chǔ)-Object(對象)在XAML代碼中,一個Element(元素)通常是一個Object(對象),在代碼中映射對應(yīng).Net類。簡單理解,在XAML中聲明一個Element元素,也就是對相應(yīng)公共語言運行類庫進行一次實例化操作。XAML代碼聲明一個元素對象,必須由一個開始標簽“<元素對象〉”和一個結(jié)束標簽“v/元素對象>”構(gòu)成,基本語法如下:<元素對象></元素對象〉例如,在XAML中聲明一個文本框,代碼如下:<TextBox></TextBox>上述代碼中開始標簽“vTextBox>”是實例化對象名稱。結(jié)束標簽“v/TextBox>”,是對應(yīng)開始標簽中的元素對象名稱。在windows8和silverlight的XAML語法中,支持略縮式元素結(jié)束標簽,其語法格式如下:vTextBox/>該語法格式省略</TextBox>結(jié)束標簽,使用“/”符號作為元素結(jié)束符。值得注意的是,XAML中Elements(元素)和Attributes(特性)名稱是字符大小寫敏感型,也就是大寫和小寫字符命名具有不同的含義。在上述代碼中,如果使用vtextbox>,XAML語法解析器將返回錯誤信息,無法對textbox元素進行實例化。XAML基礎(chǔ)一Property(屬性)在面向?qū)ο蟪绦蜷_發(fā)中,我們所提及的屬性,即是指對象的屬性。而開發(fā)過程中,對象屬性也是最重要,最常用的概念。在XAML代碼中,允許開發(fā)人員聲明“元素對象”,不同的“元素對象”對應(yīng)著多個對象屬性。例如,一個TextBox文本框,有背景屬性,寬度屬性,高度屬性等。為了適應(yīng)實際項目的需求,XAML提供三種方法設(shè)置屬性,分別是:通過Attribute特性設(shè)置對象屬性;通過Property屬性元素設(shè)置對象屬性;通過隱式數(shù)據(jù)集設(shè)置對象屬性;下面將分別介紹這三種屬性設(shè)置方法的基礎(chǔ)語法和使用方法。Attributes特性的概念<GridBackground=,iBlack"I4idth="500,sHeight="3001'></Grid>XAML曲Attribute(特性)語法在XAML代碼中,允許在開始標簽的對象名后使用Attributes(特性)定義一個或者多個對象元素的屬性,實現(xiàn)屬性賦值操作,其語法結(jié)構(gòu)如下<元素對象屬性名=“屬性值”屬性名=“屬性值”???></元素對象>例如,在TextBox文本框中添加默認文本內(nèi)容,將文本內(nèi)容賦值到Text屬性即可,vTextBoxText=‘XAML實例教程系列”>v/TextBox>由于元素對象屬性名在開始標簽內(nèi)部,所以這種表達方式也被稱為偽聯(lián)屬性”。Property屬性元素的概念使用XAML的Attribute特性可以簡單快捷的設(shè)置對象的屬性,其屬性值局限于簡單的字符形式。在實際項目中,經(jīng)常會遇到復(fù)合型控件或者自定義控件引用較為復(fù)雜的對象屬性,以達到個性化的效果。對此Attribute特性無法支持,從而引入Property屬性元素的概念。在傳統(tǒng).Net開發(fā)語言中,調(diào)用一個對象屬性,可以簡單的使用以下格式實現(xiàn):元素對象?屬性=屬性值例如,在C#代碼中,調(diào)用一個按鈕的內(nèi)容屬性,代碼為:Button.Content=“XAML實例教程系列”;而在XAML代碼中,其調(diào)用方法類似與.Net開發(fā)語言屬性使用方法,其語法格式為:<元素對象><元素對象?屬性><屬性設(shè)置器屬性值=“>V/元素對象?屬性></元素對象>其中,屬性設(shè)置器可以設(shè)置為較為復(fù)雜的對象元素,例如布局控件元素,自定義控件元素等。下面是用一個按鈕控件演示Property屬性的作用,設(shè)置按鈕內(nèi)容是使用Content屬性,如果使用Attribute特性設(shè)置按鈕內(nèi)容,如下代碼:<ButtonWidth=,,200,'Height=,,40,1Content=MXAML^Ij教程系列”其運行結(jié)果為:其運行結(jié)果為:如果需要在按鈕內(nèi)容中添加一個圖片,使其具有個性化效果,將無法使用Attribute特性進行設(shè)置,這時可以嘗試使用Property屬性設(shè)置方法,例如:<ButtonI4idth=,,200,'Height^'^Q'1>元養(yǎng)對象<Button.Content>對象屬忤<ImageSource=,1Assets/SmallLogo.png,1></Iniage><Tex±BlockMdrgiR=,,10J0J0J0HText=HXAML實例教程系列,Jx/TextBloc日clcPain已對象屬性設(shè)置</Button.Content></Button>
對象屬性設(shè)置在上面的示例代碼中,按鈕的Content內(nèi)容屬性以<元素對象?屬性〉的形式出現(xiàn)在vButtonx/Button>中,屬性值設(shè)置器被StackPanel布局控件替代,在StackPanel布局控件中,分別定義了Image控件和TextBlock控件,用來顯示圖片和按鈕文本內(nèi)容,其運行效果如下:從示例中可以看出,使用元素對象的Property屬性設(shè)置方法,比Attribute特性要靈活和強大。如果使用Property屬性設(shè)置簡單文本,也可以使用以下方法:<ButtonWidth=,,200MHeiEht=,,40,'><Button.Content>XAML實冽教程系列</Button.Content></Button>其運行效果和Attribute特性設(shè)置按鈕內(nèi)容相同。Property屬性元素是用戶界面設(shè)計中最常用的屬性設(shè)置方法,在隨后的章節(jié)中會經(jīng)常出現(xiàn)。隱式數(shù)據(jù)集設(shè)置對象屬性通過學習Property屬性元素,可以了解到XAML的元素對象屬性,不僅包含單一對象屬性,同時還支持復(fù)雜屬性,屬性值可以為簡單的字符數(shù)據(jù)類型,同時也可以是一個數(shù)據(jù)集。為了簡化XAML代碼復(fù)雜性,提高代碼易讀性,XAML提供隱式數(shù)據(jù)集設(shè)置對象屬性方法。例如,在XAML中為一個ComboBox組合框賦值,傳統(tǒng)代碼如下:<ComboBox><ComboBox.Items>V匚<ComboBox.Items>V匚omboBoxItem<ComboBoxItem<ComboBoxItem<ComboBoxItem<ComboBoxItem</ComboBox.Items></ComboBox>Content=,,XAI^L^I]1'7>Content=HXAML^!]2H/>Content=,,XAML^?lj3'7>Content=HXAML^lj4H/>Cont已毗二”XAML實副5'7>銀光中國Sih/erJightCHINA在以上代碼中,使用了<ComboBox.ltems>屬性賦值ComboBoxItem內(nèi)容,使用隱式數(shù)據(jù)集設(shè)置對象屬性方法,可以修改以上代碼為:<ComboBcixWidth="220"<ComboBoxItem<ComboBcixWidth="220"<ComboBoxItem<ComboB0xItem<ComboBoxItem^ComboBaxItem<ComboBoxItem</ComboBox>Height=,'40,,>Conte吐=”XAML實■例1'7>CcmEnizJXAML實朝2'7>5毗曰代XAML實勵3,J/>Content-1'『7》Content=HXAML實夠j5,J/>從對比以上代碼可以看出<ComboBox.ltems>被刪除后,vComboBox>仍舊可以對ComBoxItem進行賦值操作。其運行結(jié)果和使用Property屬性元素屬性賦值相同:另一個隱式數(shù)據(jù)集屬性賦值的例子,在XAML代碼可以直接生成漸變背景效果,實現(xiàn)方法是使用畫刷類的GradientStops屬性控制,在下面的代碼中,我們嘗試生成一個藍色背景漸變效果:
<RectangleWicth="80,JHeight^^SQ'5H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)激勵合同:股權(quán)獎勵與業(yè)績掛鉤條款3篇
- 2025年度濾袋材料費用合同采購與項目進度管理合同3篇
- 2025年度網(wǎng)絡(luò)安全防護設(shè)備采購合同范本與安全等級保護2篇
- 學生校園欺凌情況調(diào)查問卷
- 敢于擔當善于化解難題體會
- 護理人力資源管理1
- 黨史知識競賽題庫及答案-一起學習黨史吧
- 八一南昌起義的意義是什么
- 2024版地方特色農(nóng)產(chǎn)品購銷合作合同版
- 2024集體土地租賃協(xié)議書
- 2024年SATACT家教培訓合同
- 青桔單車保險合同條例
- 《ESPEN重癥病人營養(yǎng)指南(2023版)》解讀課件
- 智慧茶園監(jiān)控系統(tǒng)的設(shè)計
- 2024年宜賓發(fā)展產(chǎn)城投資限公司第三批員工公開招聘高頻難、易錯點500題模擬試題附帶答案詳解
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術(shù)規(guī)范
- 哈爾濱研學旅行課程設(shè)計
- 2024年省宿州市“宿事速辦”12345政務(wù)服務(wù)便民熱線服務(wù)中心招考15名工作人員高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 2024年安徽省行政執(zhí)法人員資格認證考試試題含答案
- 中國2型糖尿病運動治療指南 (2024版)
- 人教版初中九年級全冊英語單詞表
評論
0/150
提交評論