理解XAML和命名空间

1. XAML 基础概念

  • 全称与定义:XAML 是 Extensible Application Markup Language 的缩写,是一种用于实例化 .NET 对象的声明性标记语言。
  • 核心用途:作为微软技术体系中的 UI 编程语言,广泛用于 Windows 10、Windows 8、Windows Phone、Silverlight 和 WPF 等平台的程序界面编写。
  • 语法特点:语法类似 XML 和 HTML 的结合体。对应的 XXX.xaml.cs 文件采用微软典型的 Code-Behind(后置代码)​ 编程模式,实现界面与逻辑的分离。

2. XAML 与 .NET 类的映射关系

  • 声明性规则:XAML 遵循 XML 语法规则,每个 XAML 包含名称及属性。
  • 元素与类:XAML 文件中的每个元素代表 .NET 中的一个类;每个属性代表 .NET 类中的属性、方法或事件。
  • 代码示例(添加一个按钮): <Button x:Name="buttonBack" Content="返回" HorizontalAlignment="Stretch" Click="buttonBack_Click" />
  • 映射解析:
    • 上述 <Button> 元素对应 Windows.UI.Xaml.Controls.Button 类。
    • 属性(如 Name、BorderThickness 等)对应 Button 类中的相关属性。
    • 事件处理程序 Click="buttonBack_Click" 对应后置 .xaml.cs 代码中的 buttonBack_Click 方法。

3. XAML 编程的 4 大原则

  1. 严格区分大小写:元素和属性名称必须严格区分。例如按钮必须是 <Button>,不能是 <button>。
  2. 属性值加双引号:所有属性值(无论声明何种类型数据)都必须包含在双引号 "" 中。
  3. 元素必须封闭:支持自闭合(如 <Button ... />)或成对标签(如 <Button>...</Button>)。
  4. 合法 XML 文档:最终的 XAML 文件必须是格式良好、结构合法的 XML 文档。

4. 命名空间与解析规则

  • URI 本质:XML 命名空间通常使用 URI 格式,但它并非指向 Web 实际位置,而是作为唯一标识符,用于区分不同环境下的 XML 文档。
  • 默认空间解析:无前缀的元素(如 <Grid>)会由解析器自动到 Windows 10 的 Windows.UI.Xaml 开头的默认命名空间去查找对应的类。
  • 专属空间解析:带前缀的属性(如 x:Name 中的 x)则指向专属命名空间,用于特定功能(如定义对象名、类关联等)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注