這篇文章主要介紹XAML文件結(jié)構(gòu)與解析XAML的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

我們創(chuàng)建XAML文件后,會(huì)看到類似圖1.16所示的結(jié)構(gòu)

圖1.16 結(jié)構(gòu)
其中,.xaml文件和.xaml.cs文件就是XAML文件的結(jié)構(gòu)。以下就是對(duì)這兩個(gè)文件的介紹。
.xaml文件中包含的就是XAML代碼,實(shí)際上就是XML語(yǔ)法。官方的說(shuō)法:它是一個(gè)聲明對(duì)象的語(yǔ)言,為我們創(chuàng)建對(duì)象提供便捷的一種方式。與HTML類似,特點(diǎn)是用來(lái)描述用戶接口 (UI)內(nèi)容。
通常我們把與.xaml文件關(guān)聯(lián)的.xaml.cs文件叫作代碼隱藏文件。如果開(kāi)發(fā)者引用.xaml中的任何一個(gè)事件(如Button的Click 事件),,將在這個(gè)文件中編寫對(duì)應(yīng)的事件處理代碼。
在上文中我們創(chuàng)建XAML文件后,會(huì)看到類似以下3種代碼。
(1)第一種是使用Visual Studio創(chuàng)建項(xiàng)目后創(chuàng)建XAML文件顯示的XAML代碼:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Hello.XAMLPage">
<Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>
(2)第二種是使用Xamarin Studio創(chuàng)建項(xiàng)目后創(chuàng)建XAML文件顯示的XAML代碼:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Hello.MyPage">
<ContentPage.Content>
</ContentPage.Content>
</ContentPage>
(3)第三種是在創(chuàng)建項(xiàng)目的同時(shí)創(chuàng)建XAML文件顯示的代碼:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Hello"
x:Class="Hello.MainPage">
<Label Text="Welcome to Xamarin Forms!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</ContentPage>
這3種文件代碼的公共部分為如下:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Hello.MainPage">
</ContentPage>
以下就是對(duì)XAML公共默認(rèn)的部分進(jìn)行說(shuō)明。
第一行是對(duì)XML簡(jiǎn)單的說(shuō)明,其中包含了XML版本號(hào)以及編碼格式。
第二行代碼至最后一行代碼的功能是構(gòu)建界面所需要的內(nèi)容。其中,第二行和第三行使用兩個(gè)XML命名空間(xmlns)聲明引用了URL。開(kāi)發(fā)者不需要知道這些URL指向的具體內(nèi)容。他們只是Xamarin和Microsoft擁有的URL,它們基本上充當(dāng)版本標(biāo)識(shí)符。第一個(gè)XML命名空間聲明意味著在XAML文件中定義了沒(méi)有前綴的標(biāo)簽,它引用Xamarin.Forms中的類,如ContentPage。第二個(gè)命名空間聲明定義了x的前綴,它用于XAML本身固有的幾個(gè)元素和屬性,(理論上)由XAML的所有實(shí)現(xiàn)支持。
注意:這些元素和屬性根據(jù)嵌入在URL中的年份略有不同。Xamarin.Forms支持2009 XAML規(guī)范,但不是所有的。
第四行代碼。在聲明x前綴之后,該前綴立即用于名為Class的屬性,這是因?yàn)槭褂眠@個(gè)x前綴在XAML文件中非常普遍。例如,Class簡(jiǎn)稱為x:Class。x:Class指定.NET類名稱。
注意:x:Class屬性只能出現(xiàn)在XAML文件的根元素中,以定義派生的C#類。
對(duì)于x:Class指定類的定義,開(kāi)發(fā)者可以在.xaml.cs文件中看到,代碼類似于以下代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Hello
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
}
}
注意:x:Class的值所指示的類型在聲明的時(shí)候必須使用partial關(guān)鍵字。這樣由XAML解析成的類和.xaml.cs文件里定義的部分就合二為一了。正是由于這種partial機(jī)制,我們可以把類的邏輯代碼留在.xaml.cs文件中,并用C#語(yǔ)言來(lái)實(shí)現(xiàn),而把那些于聲明及布局UI元素相關(guān)的代碼分離出來(lái),實(shí)現(xiàn)UI以邏輯分離。
以上是“XAML文件結(jié)構(gòu)與解析XAML的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
分享題目:XAML文件結(jié)構(gòu)與解析XAML的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://chinadenli.net/article4/gcooe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、微信小程序、外貿(mào)網(wǎng)站建設(shè)、App設(shè)計(jì)、搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容