欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决锁定图层,图形不淡显的问题

程序员文章站 2022-10-17 21:52:28
锁定图层是我们常用的功能,其代码如下:public static void LockLayer(LayerTableRecord layer, Document doc) { using (var trans = doc.TransactionManager.StartTransaction()) ......

锁定图层是我们常用的功能,其代码如下:

public static void locklayer(layertablerecord layer, document doc)
{
    using (var trans = doc.transactionmanager.starttransaction())
    {
        layer.upgradeopen();
        layer.islock = true;
        trans.commit();
    }
}

经测试发现,在图层管理器图层是锁定了,但是模型空间种,对应的图层却并没有锁定的淡显效果。笔者推测需要重新生成一下图形,故增加以下代码重新生成图形:

doc.editor.regen();

然而问题仍然没有解决,经查阅资料,需要重新设置一下图层关闭状态,才可以刷新显示。增加的代码如下:

layer.isoff = layer.isoff;

最终问题得以解决。完整代码如下:

public static void locklayer(layertablerecord layer, document doc)
{
    using (var trans = doc.transactionmanager.starttransaction())
    {
        layer.upgradeopen();
        layer.islock = true;
        layer.isoff = layer.isoff;//刷新显示
        trans.commit();
        doc.editor.regen();
    }
}