美文网首页
WPF XAML命名空间和命名空间映射

WPF XAML命名空间和命名空间映射

作者: EvilPomelo | 来源:发表于2018-03-11 17:18 被阅读435次

在VS创建了一个默认的WPF应用程序后,会发现自动生成的XML代码有一串莫名奇妙的URL代码,如下图所示。


image.png

那这些URL标识的作用是什么呢,答案是命名空间。

核心命名空间

//第一段命名空间 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

第一段命名空间是WPF控件的命名空间,WPF命名空间本来是要在C#中引入的,例如:

using System.Windows;
using System.Windows.Controls;
using ......

但是由于不同控件在不同的命名空间,引入起来特别麻烦,因此XMAL就将这些命名空间封装到了一个URL标识中。

//第二段命名空间
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

第二段命名空间引用的是默认XAML类库,其中包含大量的XAML专用的元素和属性,通过在标签中标记x:使用。而第一段命名空间是默认命名空间,不需要标记任何标记就可以使用,这样做的原因是WPF命名空间的元素远多于XAML命名空间的元素和属性。如下代码块:

//<Grid>不需要标记,x:Name需要标记
<Grid x:Name="Grid1"> </Grid>

这两段命名空间是核心命名空间,也是写XAML必需引用的,因为不可能不用到WPF和XAML类库。

设计类命名空间

//该命名空间引用Expression Blend辅助设计类库,对Visual Studio和Expression Blend视图设计模式提供支持,其实际设计中主要提供设计视图页面尺寸定制。
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
//该命名空间引用XAML语言辅助类库,对XAML提供辅助设计支持,主要功能是为XAML语法解析器提供辅助解释功能,例如,使用mc:Ignorable=“d”告知XAML解析器以“xmlns:d”为前缀的元素引用在运行时被忽略。
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

主要是给Visual Studio 和 Expression Blend设计软件提供支持的,这里不着重介绍。

使用系统类

//可以应用系统类,如System,System.Collections
xmlns:s="clrnamespace:System.Collections;assembly=mscorlib"

使用自定义类

//定义了一个自定义的Person的命名空间后,可以如下引用
xmlns:local="clr-namespace:Person"

使用DLL程序集

首先在项目中添加程序集的引用,然后在XAML引入其命名空间

//引入DLL程序集中的Library1命名空间
  xmlns:customlib="clr-namespace:Library1;assembly=Library"

相关文章

  • WPF XAML命名空间和命名空间映射

    在VS创建了一个默认的WPF应用程序后,会发现自动生成的XML代码有一串莫名奇妙的URL代码,如下图所示。 那这些...

  • ArcGIS Runtime SDK for WPF加载离线文件

    1.在WPF项目中通过nuget添加Esri.ArcGISRuntime.WPF 2.在XAML文件头添加命名空间...

  • 在Python中 作用域与命名空间的坑

    1. 命名空间 1.1 什么是命名空间 Namespace命名空间,也称名字空间,是从名字到对象的映射。Pytho...

  • python之命名空间与作用域

    1 命名空间 1.1 概念 命名空间(namespace)是名称到对象的映射,当前大部分命名空间都是通过 Pyth...

  • Python基础手册28——模块的高级概念

    三、模块命名空间 命名空间(名称空间)中保存了变量名到对象的映射。向命名空间添加变量名的操作过程涉及到绑定变量到指...

  • Hbase 查询语句

    进入HBase数据库 HBase帮助命令: 命名空间 列出所有命名空间 新建命名空间 删除命名空间 该命名空间必须...

  • NDK开发:C++基础

    一、命名空间 standard:标准命名空间 命名空间类似于java中的包。 自定义命名空间 使用命名空间 ::为...

  • 2018-11-29 单词

    mapper 映射 namespace 命名空间 parametertype 参数类型 resulttype 返回...

  • Chapter 18 Large-scale project t

    命名空间 inline命名空间 inline声明的命名空间, 可以无视本层命名空间, 而可以被直接使用. 用处: ...

  • C#随笔1

    1命名空间 语法 namespace 命名空间名称{若干个类型} ORnamespace 命名空间名称.子命名...

网友评论

      本文标题:WPF XAML命名空间和命名空间映射

      本文链接:https://www.haomeiwen.com/subject/rcnifftx.html