有一个矩形,想在矩形里面画一些组线,g.DrawLines;g.DrawRectangle;但是这些线段会超出矩形的范围,有没有什么办法可以将超出这个矩形范围的部分不显示出来?
如果是填出的话可以用
Region reg = new Region(gp);
Rectangle rect = new Rectangle(100, 100, 100, 100);
reg .Intersect(rect );
g.FillRegion(brush, reg);
这个办法来获取交集部分并填充。
但是现在是画线,不是填充,没有g.DrawRegion(pen,reg);这个方法;请教各位有没有其他的办法可以实现上述问题?

解决方案 »

  1.   

    先在另外的image对象中画好线,然后把这个image对象在rect中的部分裁剪出来,画在g里面
      

  2.   

    但是这个rect里面还有其他画图,而且rect以外也有其他画图,g无法限定大小。
    补充一下,我画的是曲线,问题是有些曲线点超出了范围,想把超出范围的部分给去掉。
      

  3.   

    g.clip限定大小后,如何取消限定?
      

  4.   

    谢谢feixuyue的回答
    解决方案:
    先Region r=g.clip;
    然后g.clip=new Region(rect);限定所要画的范围
    最后再g.clip=r;恢复原来的状态。