Xamarin.Forms的XAML解释和用法介绍

本文概述

Xaml或可扩展标记语言是一种声明性语言, 用于在Xamarin.Forms中创建用户界面。

Xaml是基于XML的简单声明性标记语言。 Xaml是区分大小写的强类型标记语言, 它将表示与业务逻辑分开。 XAML元素是CLR对象的XML表示形式。 Xaml用于在层次关系中创建, 初始化和设置对象的属性。 Xaml主要用于设计WPF, Silverlight, Windows Phone和Xamarin Forms中的UI。

XAML工作

Xaml文件将转换为BAML(二进制应用程序标记语言), 它将作为一种资源嵌入到最终的DLL / exe中。

Xamarin.Forms的XAML

XAML的优点

  • XAML基于XML语法。
  • XAML代码小而容易。
  • 与代码相比, XAML代码易于编写且易于理解。
  • 与代码相比, 使用XAML设计UI更容易。
  • XAML在UI(XAML)和UI逻辑(C#)之间提供了清晰的分隔。
  • XAML将设计人员和开发人员的角色分开。

Xaml的好处

首先, 在XAML中布置用户界面的最大好处是容易。当使用XAML对页面中的可视树控件进行布局时, 可以快速制作应用程序, 并且外观非常明显。

XAML中的代码更具可读性。例如:当控件数据绑定到视图模型中的属性时, XAML语法比C#语法干净得多。

花费数据绑定:

<Label Text="{Binding FirstName}" />

C#数据绑定:

Label firstNameLabel = new Label();
firstNameLabel.SetBinding(Label.Text, "FirstName");

XAML版本变得更具可读性。

最后, Xamarin在Xamarin Studio和Visual Studio中都引入了新版本的XAML预览器。该工具允许开发人员在IDE中查看用户界面。

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:XamarinLifecycle"
             x:Class="XamarinLifecycle.MainPage">

    <StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
    </StackLayout>

</ContentPage>

在这里, XAML解析器打开的<ContentPage>元素知道它已经遇到了内容页面, 因此应该实例化。其他UI控件放置在<ContentPage.Content>标记内, XAML解析器在其中实例化以构建UI。

XAML解析器负责XAML文件的工作, 查找需要实例化的元素, 设置其属性, 将适当的控件放置在总体Layout中的适当位置, 执行数据绑定等。一项令人印象深刻的技术。

属性

在XAML中, 属性具有两种风格。第一个是属性属性。这些是最简单有效的理解。在UI组件的标签内声明的属性属性。属性名称将始终与控件的属性名称相同, 但属性的值将始终为字符串。

<Label Text="bURGER AND FRIES" TextColor="Red"/>

我们总是指定一个字符串, 因为XAML接受XML规则。

XAML的第二种属性是元素属性。当属性的值太复杂而无法在简单的字符串中表达时, 使用元素属性。

元素属性倾向于隐藏在视线中。创建空白ContentPage时, 该元素是元素属性。此属性用于保存Page的其余内容, 该内容太复杂而无法在字符串中表达。

XAML和代码之间的区别

XAML比代码更易于维护和修改。 Xaml易于解析, 可以通过软件工具(而非代码)进行编辑。 XAML有时比等效的C#代码更简洁。

<StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
    </StackLayout>

XAML没有循环, 没有流控制, 没有代数计算语法, 也没有事件处理程序。在这种情况下, C#代码可以帮助我们定义所有这些内容。

档案结构

Xaml文件由两个文件组成。 UI和背后的代码。如果要创建注册表格, 则将具有以下内容:

  • Login.Xaml-XAML用户界面
  • UI的Login.Xaml.CS-代码隐藏

XAML UI结构

XAML视图由一个页面组成, 可以使用不同的布局, 如果没有布局, 则使用多个视图来创建UI。

Xamarin.Forms的XAML

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?