2017-08-31 56 views
0

如何设置如下图所示的区域?使用GraphicsPath为面板创建自己的形状

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

使用两个区域和Region.Exclude。 (并了解标点符号!) – TaW

回答

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

对于更复杂的形状,你确实会想创建GraphicsPathsRegions

+0

你好坐,谢谢你的帮助 –