c# 获取CAD已加载的线型 并且在对话框的下拉列表显示出来
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 图书管理登录界面WPF.Service
{
public class LineStyleInfo
{
public ObjectId id { get; set; }
public string lineTypename { get; set; }
}
public class GetLineType
{
///
/// 获取线型
///
///
public static List
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc?.Database;
Editor ed = doc?.Editor;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
List
try
{
if (doc == null) return (lineTypeInfo);
LinetypeTable linetypeT = trans.GetObject(db.LinetypeTableId, OpenMode.ForRead) as LinetypeTable;
foreach (ObjectId item in linetypeT)
{
LinetypeTableRecord LineTypeRecordName = trans.GetObject(item, OpenMode.ForRead) as LinetypeTableRecord;
lineTypeInfo.Add(new LineStyleInfo
{
id = item,
lineTypename = LineTypeRecordName.Name
});
}
trans.Commit();
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
return (lineTypeInfo);
}
}
}
}
using Autodesk.AutoCAD.DatabaseServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 图书管理登录界面WPF.Service;
namespace 图书管理登录界面WPF.Mode
{
public class LineTypeData
{
public List
public LineTypeData()
{
List
DataLineTableR = LineTypeTableR;
}
}
}
using Autodesk.AutoCAD.DatabaseServices;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using 图书管理登录界面WPF.Mode;
using 图书管理登录界面WPF.Service;
namespace 图书管理登录界面WPF.ViewMode
{
public class LineTypes:INotifyPropertyChanged
{
LineTypeData lineTypeData;
public LineTypes()
{
lineTypeData=new LineTypeData();
LineTypeList = new ObservableCollection
LineTypeCount = LineTypeList.Count;
// 可选:默认选中第一个
if (LineTypeList.Any())
{
SelectlineType = LineTypeList.First().id.ToString();
SelectedLineTypeName = LineTypeList.First().lineTypename;
}
}
private ObservableCollection
private string _selectlineType;
public string SelectedLineTypeName { get; set; }
public int LineTypeCount { get; set; }
public ObservableCollection
{
get => _lineTypeList;
set
{ _lineTypeList = value;
OnPropertyChanged();
}
}
public string SelectlineType
{
get => _selectlineType;
set
{
_selectlineType = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string PropertyName = null) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
}

浙公网安备 33010602011771号