XAML是专为.NET设计的声明式XML标记语言,用于描述UI结构,严格区分大小写、属性值须双引号、元素必须闭合;WPF与Xamarin.Forms语法一致但命名空间和控件体系不同。

XAML 是一种声明式标记语言,本质是 XML 的扩展,专为 .NET 平台设计,用来描述用户界面(UI)结构和行为。它不是运行时解释的脚本,而是直接映射到 .NET 类型的实例化——每个 XAML 标签对应一个类,每个属性对应类的属性、事件或方法。WPF 和 Xamarin.Forms 都用它来分离界面定义与业务逻辑,让设计师和开发者可以并行工作。
XAML 的核心特点
它不是通用 XML,而是有严格语义约束的标记:
- 大小写敏感:Button 和 button 是不同的,必须完全匹配类名
- 所有属性值必须用双引号包裹,比如 Width="200",不能写 Width=200
- 所有元素必须闭合:可用自闭合形式 ,也可用成对形式
- 整个文件必须是格式良好的 XML:有且仅有一个根元素,嵌套正确,命名空间声明完整
WPF 与 Xamarin 中 XAML 的差异点
虽然语法高度一致,但底层命名空间和控件体系不同:
- WPF 使用 http://schemas.microsoft.com/winfx/2006/xaml/presentation 作为默认命名空间,控件如 Button、Grid 来自 WPF 程序集
- Xamarin.Forms 使用 http://xamarin.com/schemas/2014/forms,控件如 Button、StackLayout 是跨平台抽象,最终渲染为各平台原生控件
- WPF 支持更复杂的模板、样式、动画和数据绑定语法;Xamarin.Forms 更侧重轻量、可移植性,部分高级特性需通过平台专属渲染器补充
从一个最小可运行 XAML 开始
不必一开始就写复杂布局。先看两个典型“空壳”:
WPF(MainWindow.xaml):
本文档是python学习笔记与简明教程;为什么用Python作为编程入门语言?每种语言都会有它的支持者和反对者。去Google一下“why python”,你会得到很多结果,诸如应用范围广泛、开源、社区活跃、丰富的库、跨平台等等等等,也可能找到不少对它的批评,格式死板、效率低、国内用的人很少之类。不过这些优缺点的权衡都是程序员们的烦恼。作为一个想要学点编程入门的初学者来说,简单才是最重要的。当学C++的同学还在写链表,学Java的同学还在折腾运行环境的时候,学Pyt
Xamarin.Forms(MainPage.xaml):
关键区别一目了然:根元素不同(Window vs ContentPage),布局容器不同(Grid vs StackLayout),属性名略有差异(Content vs Text),但整体结构和读写逻辑完全相通。
下一步该关注什么
入门后建议按顺序聚焦三件事:
- 掌握常用布局容器:WPF 中的 Grid、StackPanel、DockPanel;Xamarin.Forms 中的 StackLayout、Grid、FlexLayout
- 理解 x:Name 和后台代码交互:在 XAML 中给控件起名(如 x:Name="myButton"),就能在 .cs 文件中用 myButton.Click += ... 绑定事件
- 尝试简单数据绑定:用 {Binding PropertyName} 连接 ViewModel 属性,这是 MVVM 模式的基石,WPF 和 Xamarin.Forms 都原生支持
基本上就这些。不复杂但容易忽略细节——比如忘了加 xmlns 声明、拼错命名空间 URI、或者在 Xamarin 中误用了 WPF 特有的属性。多写几遍基础页面,自然就上手了。









