.Net创建的停靠栏再2016/2022中测试无法放在菜单栏的下部只能在最上层的位置固定,手动调换的时候也无法完成这个操作。

PatternSet

PatternSet 是AutoCAD的一个接口,通过接口可以设置工具栏的样式和将自己的窗口植入到工具栏中,其中需要的WPF窗口类型为‘UserControl’,作为子类别加入到CAD的工具栏中,所以两者可以单独创建最终使用借口连接到一起即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class PatternSetWindowCommand
{
[CanBeNull] private static PaletteSet PSet { get; set; } = null;

[CommandMethod("ShowWindow")]
public void ShowWindowCommand()
{
if (PSet == null || PSet.Visible == false)
{
var window = new PatternSetWindow();

PSet = new PaletteSet("Document");
PSet.Visible = true;
ElementHost host = new()
{
AutoSize = true,
Dock = DockStyle.Top,
Child = window
};

PSet.Style = PaletteSetStyles.ShowCloseButton | PaletteSetStyles.ShowAutoHideButton | PaletteSetStyles.SingleRowDock |
PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.SingleColDock ;
PSet.Add("TYDI_Document", host);
PSet.KeepFocus = true;
PSet.Size = new Size(600, 50);
PSet.MinimumSize = new Size(300, 50);
PSet.Dock = DockSides.Top;
PSet.RecalculateDockSiteLayout();
}
}

}

最终的效果:
在这里插入图片描述
在这里插入图片描述

ToolBar

工具栏与CUI的方式基本一致,只需要将自己的命令字符串传入并且bmp格式图传入即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var acadApp = (AcadApplication)Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;


var atb = acadApp.MenuGroups.Item("ACAD").Toolbars.Add("TYDI");


var bitmapPath = @"E:\CSharpProgram\TYDIDocumentPlatform\DocumentPlatform\Resources\cCCC.bmp";
var bitmapLargePath = @"E:\CSharpProgram\TYDIDocumentPlatform\DocumentPlatform\Resources\A.bmp";

var atbItem = atb.AddToolbarButton(0, "Test06", "CCC", "LI", false);
//atbItem.SetBitmaps(bitmapPath, bitmapPath);
var atbItem2 = atb.AddToolbarButton(2, "Test02", "BBBB", "CIRLE", false);

//atbItem2.SetBitmaps(bitmapLargePath, bitmapLargePath);
//atb.AddSeparator("3");

atb.Dock(Autodesk.AutoCAD.Interop.Common.AcToolbarDockStatus.acToolbarDockTop);

atb.Visible = true;

最终的效果:
在这里插入图片描述