WPF创建自定义类和控件及打包成dll引用
- 一、前言
- 二、创建自定义类和控件并生成dll文件
- 2.1创建类库项目
- 2.2创建自定义类和控件
- 2.3生成dll文件
- 三、在其他项目中引用
- 3.1添加dll文件引用
- 3.2cs文件中引用命名空间
- 3.3XAML文件中引用命名空间
一、前言
出于一些代码复用的需求,会将一些常用的基础类及控件放在一个单独项目中,然后打包成dll文件,在其他项目中引用这个dll文件就可以使用这些类和控件,这种做法可以提高编程效率,降低代码量,增强项目的可维护性。
二、创建自定义类和控件并生成dll文件
2.1创建类库项目
创建类库项目,在VS2019中选择新建项目,然后选择C#语言、windows平台,在搜索框中输入类库,如下图所示:
此时会出现多个项目模板供选择,要根据项目的.NET框架而不是根据WPF或WinForms框架进行选择,例如项目的框架是.NET Framework框架,那么就应该选择图中第四个模板:类库(.NET Framework),不能选择第二个模板:WPF类库。
以选择第四个模板为例进行下一步操作,下一步需要选择.NET Framework版本,如下图所示,如果选择的版本高于后续引用dll文件的项目版本,可能会导致报错,所以应选择尽可能低的版本。
2.2创建自定义类和控件
创建自定义类和控件没有特别需要注意的地方,选中上一节创建的项目名称,鼠标右键选择添加,然后选择类或用户控件即可,如下图所示:
2.3生成dll文件
选中上一节创建的项目名称,鼠标右键点击生成或重新生成,即在项目文件夹的bin/Debug或bin/Release文件夹下生成与项目同名的dll文件,即为目标dll文件。
三、在其他项目中引用
3.1添加dll文件引用
在其他项目中引用首先需要添加dll文件引用。选中项目的引用,鼠标右键选择添加引用,点击浏览,选择dll文件所在路径,确定,即添加完成。
3.2cs文件中引用命名空间
需要在项目的cs文件中引用命名空间,命名空间与dll项目名同名,例如名为MyClassLibrary,则代码如下;
using MyClassLibrary; // 引用类库中的命名空间
namespace MyProject
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
}
}
3.3XAML文件中引用命名空间
当需要在项目中调用自定义控件时,需要在XAML文件中引用命名空间,如果是仅调用自定义类则不需要此步。代码如下:
<Window x:Class="AnotherProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localMy="clr-namespace:MyClassLibrary;assembly=MyClassLibrary"
Title="MainWindow" Height="350" Width="525">
</Window>