002.为C#动态链接库添加wpf窗体

一.新建与ug12.0交互的c#动态链接库项目(见001篇文章)

接上一篇内容继续做,上篇虽然我们已经实现了动态链接库与ug12.0软件进行交互,但他太简陋了,没有一个我们自己的界面,本节内容我们将为我们的项目添加wpf窗体,实现用自定义的窗体界面与ug12.0进行交互二次开发

二.修改.csproj文件

在我们的项目文件路径内找到.csproj这个文件,用记事本打开,

在其第一个PropertyGroup节点的最后添加一行:

XML 复制代码
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

其中,黄色的那行就是我们上一步添加上去的。此时我们再右键项目名称》保存文件

三.为链接库添加窗口

此时右键项目--添加,已经能看到可以为项目添加页或窗体了

这说明我们此时就可以添加WPF元素了。我们在项目中添加个HomePage,可以成功添加。但有报错,别急,因为我们还缺少几件wpf的框架引用,

四.添加wpf框架引用

在主程序中添加如下引用:

PresentationCor(4.0.0.0)

PresentationFramework(4.0.0.0)

System.Xaml(4.0.0.0)

WindowBase(4.0.0.0)

此时再看添加的HomePage,发现已经正常了。但莫急,请继续往后看......

五. 修改Assembly.cs

在Assembly.cs中添加一行代码:

cs 复制代码
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

这行代码的作用是,当WPF寻找控件时,给其指明主题字典(控件样式)在类库中的存储位置。

到了这里动态链接库中已经添加了一个功能完整的Windows窗体了,

六.使用这个窗体

在类库主程序中面向HomePage窗体对象,new一个对象并显示它

cs 复制代码
private static HomePage theHomePage;//Windows窗体字段

在主程序入口使用这个窗体

cs 复制代码
 public static int Main(string[] args)
 {
     // Window1 window = new Window1();
     int retValue = 0;
     try
     {
         theProgram = new Program();

         //这里写你的代码

         theHomePage = new HomePage();//new一个窗体对象
         theHomePage.ShowDialog();//显示HomePage窗体

         theProgram.Dispose();//关闭插件后台

     }
     catch (NXOpen.NXException ex)
     {

     }
     return retValue;
 }

启动ug,执行这个dll文件,运行结果如下:(正确显示出我们自定义的窗体了)

到了这一步,最核心的东西都解决了,剩下的如何做漂亮的ui界面其实都是最基础的技能,很容易就能完成

相关推荐
zlinear数据采集卡6 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
深澈Vincel9 小时前
我用 C# + WebView2 做了一个针对“流氓软件”的“一键清理工具“:架构实践与踩坑记录
c#
zlinear数据采集卡10 小时前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
阿部多瑞 ABU11 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
条形码D11 小时前
DRG综合管理分析系统-目前已经支持CHS-DRG3.0
c#·drg·3.0分组器·drg分组器·chs-drg3.0分组器
Alex Gram1 天前
数据库同步工具PanguSync图文教程
java·mysql·postgresql·sqlserver·c#·数据库同步软件·数据库同步工具
头茬韭菜1 天前
第 10 篇:「Fluss 实战案例集」—— 完整解决方案与最佳实践
c#·linq·fluss
FuckPatience1 天前
WPF 给一个界面上的按钮应用同一种样式
wpf
淡海水2 天前
01-05-运行时-JIT优化全景-内联去虚拟化边界检查消除
windows·c#·虚拟化·jit·内联·边界检查消除