XAML
eXtensible Application Markup Language (XAML) 是以 XML 為基礎的語言,是程式設計程式代碼的替代方案,可用來具現化和初始化物件,以及在父子式階層中組織這些物件。
XAML 可讓開發人員使用標記而非程式代碼,在 .NET 多平臺應用程式 UI (.NET MAUI) 應用程式中定義使用者介面。 .NET MAUI 應用程式中不需要 XAML,但它是開發 UI 的建議方法,因為它通常是更簡潔、更具視覺一致性,而且具有工具支援。 XAML 也非常適合搭配 Model-View-ViewModel (MVVM) 模式使用,其中 XAML 會定義透過 XAML 型數據系結連結至 ViewModel 程式代碼的檢視。
在 XAML 檔案中,您可以使用所有 .NET MAUI 檢視、版面配置和頁面,以及自定義類別來定義使用者介面。 XAML 檔案可以編譯或內嵌在應用程式套件中。 無論哪種方式,XAML 會在建置階段剖析以找出具名物件,並在運行時間將 XAML 所代表的物件具現化和初始化。
XAML 在對等程式代碼上具有數個優點:
- XAML 通常比對等程式代碼更簡潔且更容易閱讀。
- XML 固有的父子式階層可讓 XAML 以更清楚的視覺方式模擬使用者介面物件的父子式階層。
也有缺點,主要與標記語言內建的限制相關:
- XAML 不能包含程序代碼。 所有事件處理程式都必須在程式碼檔案中定義。
- XAML 不能包含重複處理的迴圈。 不過,有些控制件會顯示資料的集合,例如 ListView 和 CollectionView。
- XAML 不能包含條件式處理。 不過,數據系結可以參考程式代碼型系結轉換器,以有效地允許某些條件式處理。
- XAML 通常無法具現化未定義無參數建構函式的類別,雖然有時可以克服這項限制。
- XAML 通常無法呼叫方法,雖然有時可以克服此限制。
.NET MAUI 應用程式中沒有用來產生 XAML 的可視化設計工具。 所有 XAML 都必須手動撰寫,但您可以在編輯 UI 時使用 XAML 熱重載來檢視 UI。
XAML 基本上是 XML,但 XAML 具有一些獨特的語法功能。 最重要的是:
- 屬性元素
- 附加屬性
- 標記延伸
這些功能不是 XML 延伸模組。 XAML 是完全合法的 XML。 但這些 XAML 語法功能會以獨特的方式使用 XML。