예제 #1
0
        /// <summary>
        /// 为当前图形添加一个新的表格样式
        /// </summary>
        /// <param name="style"></param>
        /// <returns></returns>
        public static ObjectId AddTableStyle(string style)
        {
            ObjectId styleId; // 存储表格样式的Id
            Document doc = acadApp.DocumentManager.MdiActiveDocument;
            Database db  = HostApplicationServices.WorkingDatabase;

            using (DocumentLock doclock = doc.LockDocument())
            {
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {
                    // 打开表格样式字典
                    DBDictionary dict = (DBDictionary)db.TableStyleDictionaryId.GetObject(OpenMode.ForRead);
                    if (dict.Contains(style))        // 如果存在指定的表格样式
                    {
                        styleId = dict.GetAt(style); // 获取表格样式的Id
                    }
                    else
                    {
                        TableStyle ts = new TableStyle(); // 新建一个表格样式
                        // 设置表格所有行的外边框的线宽为0.30mm
                        ts.SetGridLineWeight(LineWeight.LineWeight030, (int)GridLineType.OuterGridLines, TableTools.AllRows);
                        // 不加粗表格表头行的底部边框
                        ts.SetGridLineWeight(LineWeight.LineWeight000, (int)GridLineType.HorizontalBottom, (int)RowType.HeaderRow);
                        // 不加粗表格数据行的顶部边框
                        ts.SetGridLineWeight(LineWeight.LineWeight000, (int)GridLineType.HorizontalTop, (int)RowType.DataRow);
                        // 设置表格中所有行的文本高度为1(默认)
                        ts.SetTextHeight(1, TableTools.AllRows);
                        // 设置表格中所有行的对齐方式为正中
                        ts.SetAlignment(CellAlignment.MiddleCenter, TableTools.AllRows);
                        dict.UpgradeOpen();//切换表格样式字典为写的状态

                        // 将新的表格样式添加到样式字典并获取其Id
                        styleId = dict.SetAt(style, ts);
                        // 将新建的表格样式添加到事务处理中
                        trans.AddNewlyCreatedDBObject(ts, true);
                        dict.DowngradeOpen();
                        trans.Commit();
                    }
                }
            }
            return(styleId); // 返回表格样式的Id
        }
예제 #2
0
        //为当前图形添加一个新的表格样式//CAD2010及以上版本可以用CAD2010版本以下的方法,但是不建议。
        public static ObjectId AddTableStyle(string style)
        {
            ObjectId styleId; // 存储表格样式的Id
            Database db = HostApplicationServices.WorkingDatabase;

            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                // 打开表格样式字典
                DBDictionary dict = (DBDictionary)db.TableStyleDictionaryId.GetObject(OpenMode.ForRead);
                if (dict.Contains(style))        // 如果存在指定的表格样式
                {
                    styleId = dict.GetAt(style); // 获取表格样式的Id
                }
                else
                {
                    TableStyle ts = new TableStyle(); // 新建一个表格样式
                    // 设置表格的标题行为灰色
                    //ts.SetBackgroundColor(Color.FromColorIndex(ColorMethod.ByAci, 8), (int)RowType.TitleRow);
                    // 设置表格所有行的外边框的线宽为0.30mm
                    ts.SetGridLineWeight(LineWeight.LineWeight030, (int)GridLineType.OuterGridLines, TableTools.AllRows);
                    // 不加粗表格表头行的底部边框
                    ts.SetGridLineWeight(LineWeight.LineWeight000, (int)GridLineType.HorizontalBottom, (int)RowType.HeaderRow);
                    // 不加粗表格数据行的顶部边框
                    ts.SetGridLineWeight(LineWeight.LineWeight000, (int)GridLineType.HorizontalTop, (int)RowType.DataRow);
                    // 设置表格中所有行的文本高度为0.8
                    ts.SetTextHeight(2.5, TableTools.AllRows);
                    // 设置表格中所有行的对齐方式为正中
                    ts.SetAlignment(CellAlignment.MiddleCenter, TableTools.AllRows);
                    dict.UpgradeOpen();//切换表格样式字典为写的状态
                    // 将新的表格样式添加到样式字典并获取其Id
                    styleId = dict.SetAt(style, ts);
                    // 将新建的表格样式添加到事务处理中
                    trans.AddNewlyCreatedDBObject(ts, true);
                    trans.Commit();
                }
            }
            return(styleId); // 返回表格样式的Id
        }