说明
由于WPF的优点多多,而且在大量的winform的操作下感觉到数据操作的麻烦....
推荐大家看杨中科WPF数据绑定教程 https://www.bilibili.com/video/av33883484/?p=1
在cad.net上面,类库项目不能简单进行新建WPF面板,但是依照下面教程就能成功将WPF面板写入cad2008项目内.
此篇引用山人的教程,原地址是: https://gitee.com/inspirefunction/NFox/blob/master/doc/WPF.md
我只做了cad2008部分的修改和释疑.
由于在类库项目内,只能添加wpf的自定义控件项目.
如下图,你是不能添加wpf窗体到类库项目的.
因此为了将wpf窗体添加到类库项目里,需要采用一些奇淫巧技.
创建模板
1.创建一个wpf应用项目
2.创建完之后什么,可以自定义一些内容,比如添加一些属性啊什么的,本示例保持默认
3.然后菜单栏-项目-导出模版,打开导出模版向导
4.选择项模版,下一步
5.只选择MainWindow.xaml文件,下一步
6.选择引用的dll..不选...
7.在模版选项里填写模版名称、说明,还可以添加图标,然后点击完成。
调用
现在可以在类库里添加的模版就创建好了,
下面是怎么使用这个模版在类库里插入wpf窗体.首先以frameworks类库项目为例:
1.新建个类库项目
2.然后右键添加-新建项。
3.然后选择刚刚新建的模版,点击添加。 没有的话,要重启VS......
4.检查已经添加
PresentationCore、PresentationFramework、System.Xaml(这个在2008没有的,net4.5才要)、WindowsBase这四个引用
然后可以画一些按钮...
5.引用cad2008的dll
6.在class1.cs内加入这些测试代码.生成dll,在cad加载就可以了.
using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Runtime; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 类库的测试WPF { public class Class1 { [CommandMethod("tt", CommandFlags.Modal)] //预选 public static void tt() { //当前的数据库 Database db = HostApplicationServices.WorkingDatabase; Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage(Environment.NewLine + "****cad2008测试WPF" + Environment.NewLine); //打开面板,设置成模态对话框 var form = new MyWindow1(); form.ShowDialog(); } } }
(完)