日期:2014-05-19  浏览次数:20834 次

不规则窗体 GraphicsPath 窗体Region 问题
在窗体中有3个矩形
Rectangle   rect1   =   new   Rectangle(25,25,100,100);
Rectangle   rect2   =   new   Rectangle(50,50,100,100);
Rectangle   rect3   =   new   Rectangle(0,0,400,400);

然后我用GraphicsPath的AddRectangle方法加入到GraphicsPath中
GraphicsPath   gp   =   new   GraphicsPath();
gp.AddRectangle(rect1);
gp.AddRectangle(rect2);
gp.AddRectangle(rect3);

然后在窗体的FormLoad事件中设窗体的region属性
this.Region   =   new   Region(gp);

但是此时出现了奇怪的现象
rect1,rect2,rect3两两重叠的地方也变成透明的了,三个矩形同时重叠的地方是正常的

问题是如何才能使rect1,rect2,rect3两两重叠的地方变成正常的状态,也就是不透明

------解决方案--------------------
帮顶……
------解决方案--------------------
private void Form1_Load(object sender, EventArgs e)
{
Rectangle rect1 = new Rectangle(25, 25, 100, 100);
Rectangle rect2 = new Rectangle(50, 50, 100, 100);
Rectangle rect3 = new Rectangle(0, 0, 400, 400);

Region vRegion = new Region(rect1);
vRegion.Union(new Region(rect2));
vRegion.Xor(new Region(rect3));
Region = vRegion;
}