XAML基础知识
XAML(eXtensible Application Markup Language)可扩展应用程序标记语言,允许开发者在Xamarin.Forms应用中采用标记而不是代码来定义用户界面。XAML定义了通过基于XAML的数据绑定链接到ViewModel代码的视图。
XAML是Microsoft创建的一种基于XML的语言,是用于实例化和初始化对象以及在父子层次结构中组织这些对象的编程代码的替代方法。
常用于微软的技术:WPF、Silverlight、UWP。
无论哪种方法,XAML信息在构建时被解析以定位已命名的对象,然后在运行时再次被解析以实例化和初始化对象,并在这些对象和编程代码之间建立链接。
XAML 具有几大优势(与等效的后台代码相比):
- XAML 通常会更简洁和可读。
- XML中固有的父-子层次结构允许XAML以更清晰的视觉效果模仿用户界面对象的父-子层次结构。
- XAML可以很容易地由程序员手工编写,但也可以通过可视化设计工具生成和使用XAML。
当然,也有缺点,主要与标记语言固有的限制有关:
- 必须在代码文件中定义所有事件处理程序。
-
ListView— 可以生成多个子级中的对象基于其ItemsSource集合。) - XAML 不能包含条件处理 (但是,数据绑定可以引用,可有效地处理某些条件的代码基于绑定转换器。)
- XAML通常不能实例化不定义无参数构造函数的类。(然而,有时有一种方法可以绕过这个限制
- (同样,此限制有时可以克服。)
XAML is basically XML, but XAML has some unique syntax features. The most important are:
- Property elements
- Attached properties
- Markup extensions
这些特性不是XML扩展。XAML完全是合法的XML。但是这些XAML语法特性以独特的方式使用XML。下面的文章将详细讨论它们,最后介绍如何使用XAML实现MVVM。
1、XAML入门
XAML用于定义页面的可视化内容,并和C#后台代码文件一起工作。
后台代码为标记提供代码支持, 在 XAML 文件中,类和属性由XML元素和特性引用,并建立标记和代码之间的链接。
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:XamlSamples" x:Class="XamlSamples.MainPage"> <StackLayout> <!-- Place new controls here --> <Label Text="Welcome to Xamarin Forms!" VerticalOptions="Center" HorizontalOptions="Center" /> </StackLayout> </ContentPage>