使用GraphicsPath为面板创建自己的形状

时间:2017-08-31 23:24:25

标签: c#

如何设置如下图所示的区域?

Example of panel I want to insert later

我画的正方形是我要插入的面板。 假设面板尺寸是新尺寸(200,500)。 然后我想删除中间的面板区域(标签为b,区域为蓝色)。 假设该地区的面积为50,50,位置为50,250 如何删除那个蓝色区域?

这就是我所做的

    GraphicsPath a = new GraphicsPath();
     Rectangle RectangleRegion = new Rectangle(new point(50, 250), new Size(50,50));
    graphicsPath.addRectangle (RectangleRegion) 

Panel myPanel = new panel(){new Size(200, 500), new Pont(0,0), region = new region(a);

使用这种方法,它不会删除我想要的区域 它只是移除了我想要保留的其他部分,它保留了我要删除的部分。

1 个答案:

答案 0 :(得分:0)

使用两个 RegionsRegion.Exclude

Region r1 = new Region(new Rectangle(11,11,111,111));
Region r2 = new Region(new Rectangle(33,33,66,66));
r1.Exclude(r2);

panel1.Region = r1;

enter image description here

对于更复杂的形状,您确实希望从Regions创建GraphicsPaths