由于WPF的优点多多,而且在大量的winform的操作下感觉到数据操作的麻烦....推荐大家看杨中科WPF数据绑定教程 https://www.bilibili.com/video/av33883484/?p=1
在cad.net上面,类库项目不能简单进行新建WPF面板,但是依照下面教程就能成功将WPF面板写入cad2008项目内.
此篇引用山人的教程,原地址是: https://gitee.com/vicwjb/NFox/blob/master/doc/WPF.md
我只做了cad2008部分的修改和释疑.
由于在类库项目内,只能添加wpf的自定义控件项目。
如下图,你是不能添加wpf窗体到类库项目的。因此为了将wpf窗体添加到类库项目里,需要采用一些奇淫巧技。
- 首先打开vs创建一个wpf应用项目。
- 创建完之后什么,可以自定义一些内容,比如添加一些属性啊什么的,本示例保持默认。
- 然后菜单栏-项目-导出模版,打开导出模版向导。
- 选择项模版,下一步
- 只选择MainWindow.xaml文件,下一步
- 选择项引用,什么都不选,直接下一步。
- 在模版选项里填写模版名称、说明,还可以添加图标,然后点击完成。
现在可以在类库里添加的模版就创建好了,下面是怎么使用这个模版在类库里插入wpf窗体。首先以frameworks类库项目为例:
- 新建个类库项目
- 然后右键添加-新建项。
- 然后选择刚刚新建的模版,点击添加。
- 然后记得添加 PresentationCore、PresentationFramework、System.Xaml(这个在2008没有的)、WindowsBase这四个引用。
(这里可以画一些按钮)
- 引用cad2008的dll
- 在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(); } } }