WPF知识点全攻略03- XAML

 XAML 是一种声明性标记语言,XAML 是一种基于 XML 并对 XML 结构规则进行了扩展。

XAML特点:

  • 定义应用程序的界面元素
  • 显示的声明WPF资源(样式、模板、动画等)
  • 可扩展性(自定义UI控件)
  • 集中关注于界面的设计和实现(UI和逻辑分离)
  • 简单易懂,结构清晰(和xml、html类似)

XAML原则:

  • XAML是大小写区分的,元素和属性的名称必须严格区分大小写;
  • 所有的属性值,无论它是什么数据类型,都必须包含在双引号中;
  • 所有的元素都必须是封闭的;如<Button …/> <Button>…</Button>;
  • 最终的XAML文件也必须是合适的XML文档。

XAML命名空间

XAML里面的元素对应着.NET里面的类,但是只提供类名是不够的,XAML解析器还需要知道这个类位于哪个.NET名称空间,这样解析器才能够正确的识别XAML的元素。

 

xmlns特性是XML中的一个特殊特性,它专门用来声明命名空间。一旦声明一个命名空间,在文档中的任何地方都可以使用该命名空间。默认生成的四条引用如下:

1、xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

是Windows 10 的核心命名空间。包含了大部分用来构建用户界面的控件类。该名称空间的声明没有使用命名空间前缀,所以他成为整个文档的默认命名空间。所以没有前缀的元素都是自动位于这个命名空间下。

2、xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

它包含了XAML的实用特性。该名称空间被映射为前缀为x。

3、xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

该命名空间引用Expression Blend辅助设计类库,对Visual Studio和Expression Blend视图设计模式提供支持,其实际设计中主要提供设计视图页面尺寸定制。

4、xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

该命名空间引用XAML语言辅助类库,对XAML提供辅助设计支持,主要功能是为XAML语法解析器提供辅助解释功能,例如,使用mc:Ignorable=“d”告知XAML解析器以“xmlns:d”为前缀的元素引用在运行时被忽略。

 

使用其他类,可参考如下方式:

xmlns:sys="clr-namespace:System;assembly=System"  //引用系统类

xmlns:local="clr-namespace:Person"    //引用自定义类

xmlns:customlib="clr-namespace:Library1;assembly=Library"   //引用外部 DLL

 

XML命名空间的名称和任何特定的.NET名称空间都不匹配。这种设计的原因有以下两个。

第一个原因:XML命名空间通常是URI。这些URI开起来像是在指定Web上的位置,但实际不是。通过使用URI格式的命名空间,不同的XML文档格式就会互相区分开来,作为唯一的标识符,表示这是创建在某个特定环境下的XML文档。

第二个原因:XAML中使用的XML命名空间和.NET命名空间不是一一对应的,如果一一对应的花,会显著增加XAML文档的复杂程度。XAML将这些.NET命名空间组合到单个XML命名空间中。

 

WPF知识点全攻略目录:https://www.cnblogs.com/kuangxiangnice/p/11040070.html

posted @ 2019-06-17 23:34  狂想NICE  阅读(706)  评论(0编辑  收藏  举报