标注对象都一个DimensionStyle属性,用这个属性可以设置或取到标注对象的标注样式。

下面代码演示设置一个标注对象的样式

void SetDimStyle()
        {
            MxDrawUtility mxUtility = new MxDrawUtility();
            // 当用户在图上选择一个对象。
            MxDrawPoint getPt;
            MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n 选择标注对象:");
            if (ent == null)
            {
                return;
            }
            if(ent.ObjectName != "McDbAlignedDimension")
            {
                return;
            }
            MxDrawDimAligned dim = (MxDrawDimAligned)ent;
            // 得到数据库对象.
            MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();

            // 得到标注样式表.
            MxDrawDimStyleTable dimStyleTable = database.GetDimStyleTable();
            string sDimStyleName = "MyDimStyleName";
            // 得到文本式
            MxDrawDimStyleTableRecord dimStyle = dimStyleTable.GetAt(sDimStyleName, true);
            if (dimStyle == null)
            {
                // 如果没有就新建一个。
                axMxDrawX1.AddDimStyle("MyDimStyleName", "41,0.18,141,0.09,40,200", "77,1,271,3", "", "");
            }
            else
            {
                // 如果被删除,就反删除。
                dimStyle.SetProp("unErase", null);

            }
            // 设置实体文字样式。
            dim.DimensionStyle = "MyDimStyleName";

            MessageBox.Show("已修改对象标注样式");
        }
12-19 22:08