WPF3-在xaml中引用其他程序集的名称空间

  • [1. 如何在XAML里引用类库中的名称空间和类](#1. 如何在XAML里引用类库中的名称空间和类)
  • [2. 小结](#2. 小结)

1. 如何在XAML里引用类库中的名称空间和类

首先需要记住一点:把类库引用到项目中是引用其中名称空间的物理基础,无论是C#还是XAML都是这样。

一旦将一个类库引用进程序,就可以引用其中的名称空间。

假设我的类库程序集名为MyLibrary.dll,其中包含Common和Controls两个名称空间,而且已经把这个程序集引用进WPF项目,那么在XAML中引用这两个名称空间的语法是:

xmlns:映射名="clr-namespace:类库中名称空间的名字;assembly-类库文件名"

对于MyLibrary.dll里的两个名称空间,XAML中的引用会是:

复制代码
xmlns:common="clr-namespace:Common;assembly=MyLibrary" 

xmlns:controls="clr-namespace:Controls;assembly=MyLibrary"

让我们分析一下XAML引用名称空间的语法。

  • xmlns是用于在XAML中声明名称空间的Attribute,它从XML语言继承而来,是XMLNamespace的缩写。

  • 冒号后的映射名是可选的,但由于可以不加映射名的默认名称空间已经被WPF的主要名称空间占用,所以所引用的名称空间都需要加上这个映射名。映射名可以根据喜好自由选择,

    但团队内部最好使用一致的命名。一个建议就是使用类库中名称空间的原名或者缩写。

  • 引号中的字符串值确定了你要引用的是哪个类库以及类库中的哪个名称空间。

一旦我们将类库中的名称空间引入XAML中,我们就可以在XAML中使用这些名称空间里的类。语法格式是:

<映射名:类名>...<映射名:类名>

例如使用Common和Controls中的类,代码是这样:

复制代码
<common:MessagePanel x:Name="windowl">

<controls:LedButton x:Name="buttonl">

附加一点额外的小知识。我们发现,XAML中引用名称空间的语法与C#不太一样。最大的差别就是XAML需要为被引用的名称空间添加一个映射名,用这个映射名来代表被引用的名称空间。

其实,C#也可以这样引用名称空间,只是不经常用罢了。比如,在C#中引用Common和Controls名称空间时可以这样写:

这种写法在名称较长的名称空间中有同名类时比较有用。

复制代码
using Cmn=Common; 

using Ctl=Controls;

2. 小结

WPF1-从最简单的xaml开始

WPF2-1在xaml为对象的属性赋值

WPF3-在xaml中引用其他程序集的名称空间

WPF4-代码后置

至此,通过几篇博文的讨论,我们已经走马观花地了解了XAML的基本语法。知识虽然不多,但足以保障我们写出美观的程序。要提醒大家的是,XAML是一种很灵活的语言,特别是一些用于简化代码的缩略写法。这些看上去比较奇怪的写法基本上无法系统地用章节来描述,只能依靠我们在实际工作中慢慢积累。不过不用担心,一般情况下比较复杂的代码都能使用前面学过的语法解释清楚。

相关推荐
FuckPatience19 小时前
WPF TabControl页面绑定ItemsSource
wpf
cplmlm1 天前
WPF+MVVM入门学习
c#·wpf
诸葛务农3 天前
人形机器人——电子皮肤技术路线:光学式电子皮肤及MIT基于光导纤维的分布式触觉传感电子皮肤
分布式·机器人·wpf
界面开发小八哥3 天前
界面控件DevExpress WPF中文教程:Data Grid - 绑定数据
ui·.net·wpf·界面控件·devexpress·ui开发
界面开发小八哥4 天前
图表组件SciChart WPF再升级:v8.9带来油气井图、新交互与可视化增强
信息可视化·wpf·数据可视化·scichart
创可贴治愈心灵4 天前
WPF中UI线程频繁操作造成卡顿的处理
ui·c#·wpf
阿登林5 天前
初步学习WPF-Prism
学习·wpf
△曉風殘月〆6 天前
WPF MVVM进阶系列教程(三、使用依赖注入)
wpf·mvvm
此wei浩亦6 天前
WPF中使用 using prism.region 报错
c#·wpf·prism
dotent·7 天前
一个 WPF 文档和工具窗口布局容器
wpf