在CAD中经常用到停靠或浮动的PaletteSet,比如:特性、图层特性管理器、工具选项板等(以下截图来自AutoCAD2010界面)。

08080623-8efe196b7b5440e6b2000e795e7014c

特性PaletteSet(停靠)


08080615-47b426904714426c8c1292de4202696

图层特性管理器PaletteSet(浮动)


08080632-ce81cb867542466bbcb2da2b2846305

工具选项板PaletteSet(浮动、多个Palette)

  这些Palette给设计带来了极大方便,灵活的展现形式(浮动和停靠)不禁让人也想给自己定制一个Palette ,下面就开始动手吧!

     在CAD的acmgd.dll中我们可以找到名称空间Autodesk.AutoCAD. Windows,今天的主角Autodesk.AutoCAD.Windows.PaletteSet就出生于此。

[Autodesk.AutoCAD.Runtime.CommandMethod("AddMyPaletteSet")]
public void AddMyPaletteSet()
        
 {
       
    Autodesk.AutoCAD.Windows.PaletteSet myPaletteSet = new Autodesk.AutoCAD.Windows.PaletteSet("我的PallteSet");
       
     myPaletteSet.Add("我的工具集", new System.Windows.Forms.Control("我的工具集"));
    myPaletteSet.Add("我的颜色", new System.Windows.Forms.Control("我的颜色"));
       
   myPaletteSet.Add("我的控件", new System.Windows.Forms.Control("我的控件"));
  myPaletteSet.Visible = true;
 }

  以上代码是创建一个PaletteSet,包含三个Palette,最后通过设置myPaletteSet.Visible为true将其显示出来。myPaletteSet.Add第一个参数是Palette的名字,第二个参数是.Net中的WinForm控件,这里为了简便就用了Control,当然真正应用时需要自己定义UserControl。myPaletteSet.Add返回值是Palette。下面看看我们的PaletteSet小伙伴吧!

  打开CAD,Netload生成的Dll,运行命令AddMyPaletteSet,下面是截图:

08080648-97d772fd10b64666befbf02a1aacd04

停靠状态


08080656-0eae3ddd7edb42e5a5c7fc50753dead

浮动状态