zoukankan      html  css  js  c++  java
  • 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命名空间中。

     

  • 相关阅读:
    uglifyjs2压缩混淆js文件
    Html5应用程序缓存ApplicationCache
    nginx搭建笔记
    Free git private repo
    编程哲学之 C# 篇:007——如何创造万物
    编程哲学之 C# 篇:003——为什么选择 C#
    编程哲学之 C# 篇:004——安装 Visual Studio
    编程哲学之 C# 篇:006——什么是 .NET
    编程哲学之 C# 篇:005——"Hello,World!"
    为什么要使用Entity Framework
  • 原文地址:https://www.cnblogs.com/kuangxiangnice/p/11042855.html
Copyright © 2011-2022 走看看