可擴展應用程式標記語言(XAML)是一種基於 XML 的語言,是程式設計的替代方案,用於實例化與初始化物件,並將這些物件組織成父子階層。
XAML 允許開發者使用標記而非程式碼,定義 .NET 多平台應用程式介面(.NET MAUI)應用程式中的使用者介面。 .NET MAUI 應用程式並非必須使用 XAML,但這是開發 UI 的推薦方法,因為它通常更簡潔、視覺更連貫,且有工具支援。 XAML 也非常適合搭配 Model-View-ViewModel(MVVM)模式使用,該模式定義透過基於 XAML 的資料綁定與 viewmodel 程式碼連結的視圖。
在 XAML 檔案中,你可以使用所有 .NET MAUI 視圖、版面配置和頁面,以及自訂類別來定義使用者介面。 XAML 檔案可以編譯或嵌入應用程式套件中。 無論哪種方式,XAML 在建置時會被解析以定位命名物件,執行時由 XAML 表示的物件會被實例化並初始化。
XAML 相較於等效程式碼有多項優勢:
- XAML 通常比同等程式碼更簡潔且易讀。
- XML 固有的父子階層結構使 XAML 能更清晰地模擬使用者介面物件的父子階層。
此外,也有一些缺點,主要是與標記語言固有的限制有關:
- XAML 不能包含程式碼。 所有事件處理器必須在程式碼檔中定義。
- XAML 無法包含用於重複處理的迴圈。 然而,有些控制項可以顯示資料集合,例如 ListView 和 CollectionView。
- XAML 無法包含條件處理。 然而,資料綁定可以參考基於程式碼的綁定轉換器,這實際上允許某些條件處理。
- XAML 通常無法實例不定義無參數建構子的類別,儘管此限制有時可被克服。
- XAML 通常無法呼叫方法,儘管此限制有時可被克服。
.NET MAUI 應用程式中沒有視覺化設計器來產生 XAML。 所有 XAML 必須手寫,但你可以用 XAML 熱載入來在編輯時查看你的 UI。
XAML 基本上就是 XML,但 XAML 有一些獨特的語法特性。 最重要的有:
- 屬性元素
- 附加屬性
- 標記擴展
這些功能 並非 XML 擴充功能。 XAML 完全是合法的 XML。 但這些 XAML 語法功能以獨特的方式使用 XML。