Xamarin XAML語言教程XAML檔案結構與解析XAML
Xamarin XAML語言教程XAML檔案結構與解析XAML
XAML檔案結構
在上文中,我們建立XAML檔案後,會看到類似圖1.16所示的結構
圖1.16 結構
其中,.xaml檔案和.xaml.cs檔案就是XAML檔案的結構。以下就是對這兩個檔案的介紹。
- .xaml檔案中包含的就是XAML程式碼,實際上就是XML語法。官方的說法:它是一個宣告物件的語言,為我們建立物件提供便捷的一種方式。與HTML類似,特點是用來描述使用者介面 (UI)內容。
- 通常我們把與.xaml檔案關聯的.xaml.cs檔案叫作程式碼隱藏檔案。如果開發者引用.xaml中的任何一個事件(如Button的Click 事件),,將在這個檔案中編寫對應的事件處理程式碼。
解析XAML
在上文中我們建立XAML檔案後,會看到類似以下3種程式碼。
(1)第一種是使用Visual Studio建立專案後建立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建立專案後建立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)第三種是在建立專案的同時建立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>
以下就是對XAML公共預設的部分進行說明。
- 第一行是對XML簡單的說明,其中包含了XML版本號以及編碼格式。
- 第二行程式碼至最後一行程式碼的功能是構建介面所需要的內容。其中,第二行和第三行使用兩個XML名稱空間(xmlns)宣告引用了URL。開發者不需要知道這些URL指向的具體內容。他們只是Xamarin和Microsoft擁有的URL,它們基本上充當版本識別符號。第一個XML名稱空間宣告意味著在XAML檔案中定義了沒有字首的標籤,它引用Xamarin.Forms中的類,如ContentPage。第二個名稱空間宣告定義了x的字首,它用於XAML本身固有的幾個元素和屬性,(理論上)由XAML的所有實現支援。
注意:這些元素和屬性根據嵌入在URL中的年份略有不同。Xamarin.Forms支援2009 XAML規範,但不是所有的。
- 第四行程式碼。在宣告x字首之後,該字首立即用於名為Class的屬性,這是因為使用這個x字首在XAML檔案中非常普遍。例如,Class簡稱為x:Class。x:Class指定.NET類名稱。
注意:x:Class屬性只能出現在XAML檔案的根元素中,以定義派生的C#類。
對於x:Class指定類的定義,開發者可以在.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的值所指示的型別在宣告的時候必須使用partial關鍵字。這樣由XAML解析成的類和.xaml.cs檔案裡定義的部分就合二為一了。正是由於這種partial機制,我們可以把類的邏輯程式碼留在.xaml.cs檔案中,並用C#語言來實現,而把那些於宣告及佈局UI元素相關的程式碼分離出來,實現UI以邏輯分離。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2137200/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Xamarin XAML語言教程使用Xamarin Studio建立XAML(二)
- Xamarin XAML語言教程使用Visual Studio建立XAML
- Xamarin XAML語言教程Visual Studio中實現XAML預覽
- Xamarin XAML語言教程將XAML設計的UI顯示到介面UI
- Xamarin XAML語言教程構建進度條ProgressBar
- 剖析XAML語言
- Xamarin XAML語言教程模板頁面TemplatedPage
- Xamarin XAML語言教程Xamarin.Forms中構建進度條ORM
- Xamarin XAML語言教程物件元素的宣告方式物件
- Xamarin XAML語言教程基本檢視ContentViewView
- Xamarin XAML語言教程模板檢視TemplatedView(二)View
- Xamarin XAML語言教程模板檢視TemplatedView(一)View
- Xamarin XAML語言教程基礎語法篇大學霸
- Xamarin XAML語言教程構建ControlTemplate控制元件模板控制元件
- Xamarin XAML語言教程Xamarin.Forms中程式狀態與進度(一)ORM
- Xamarin XAML語言教程控制元件模板的模板繫結控制元件
- Xamarin XAML語言教程構建ControlTemplate控制元件模板 (二)控制元件
- Xamarin XAML語言教程構建ControlTemplate控制元件模板 (四)控制元件
- Xamarin XAML語言教程構建ControlTemplate控制元件模板 (三)控制元件
- Xamarin XAML語言教程通過資料繫結使用Progress屬性
- Xamarin XAML語言教程隱藏檔案使用Progress屬性設定進度條
- Xamarin XAML語言教程基本檢視ContentViewg構架範圍框架View框架
- Xamarin XAML語言教程基本頁面ContentPage佔用面積
- Xamarin XAML語言教程Xamarin.Forms中改變活動指示器顏色ORM
- Xamarin XAML語言教程通過ProgressTo方法對進度條設定
- Xamarin XAML語言教程使用方法設定進度條進度
- Xamarin XAML語言教程Progress屬性設定進度條進度
- Xamarin XAML語言教程基本頁面ContentPage佔用面積(二)
- Xamarin XAML語言教程Xamarin.Forms中活動指示器的顯示隱藏ORM
- Xamarin XAML語言教程使用使用Progress屬性設定當前進度
- Xamarin.Forms XAML的輔助功能Code SnippetORM
- Xamarin XAML語言教程使用Progress屬性資料繫結設定進度條進度
- Xamarin.Forms XAML控制元件的公共屬性ORM控制元件
- Xamarin XAML語言教程ContentView檢視作為自定義檢視的父類View
- Xamarin XAML語言教程使用屬性設定進度條的當前進度
- XAML資料繫結(Data Binding)
- Visual Studio 2017建立XAML檔案
- XAML常用控制元件2控制元件