请教怎么用GDI+对一个矩形进行中心向四周,颜色渐变的填充

请问如何用GDI+对一个矩形进行中心向四周,颜色渐变的填充
RT。
我想要的效果是是:
请教怎么用GDI+对一个矩形进行中心向四周,颜色渐变的填充
我试着用PathGradientBrush来填充,可是不对……
我分别作出了下面三种错误的情况
请教怎么用GDI+对一个矩形进行中心向四周,颜色渐变的填充
请教怎么用GDI+对一个矩形进行中心向四周,颜色渐变的填充
第三种错误与第一种错误差不多,只不过是椭圆填充的区域要大一些,超出了矩形的范围。因为代码改了不少,所以没有截图……
我现在只能用(平台限制,其实我也只会用)继承了Brush的那几个画刷,或者直接用Graphics的那些FillXxxx方法。该怎么做呢?
前辈们帮帮忙吧请教怎么用GDI+对一个矩形进行中心向四周,颜色渐变的填充
我想着应该有现成的的method可以实现我的效果。如果没有的话,我该怎样填充那个矩形?我觉得第三种错误似乎可行,只要把多出矩形的部分去掉就好了,可是做不到……

------解决方案--------------------
填充前SetClip
// Create a path that consists of a single polygon.
Point polyPoints[] = {Point(10, 10), Point(150, 10), 
   Point(100, 75), Point(100, 150)};
GraphicsPath path;
path.AddPolygon(polyPoints, 4);
// Construct a region based on the path.
Region region(&path);
// Draw the outline of the region.
Pen pen(Color(255, 0, 0, 0));
graphics.DrawPath(&pen, &path);
// Set the clipping region of the Graphics object.
graphics.SetClip(&region);
// Draw some clipped strings.
FontFamily fontFamily(L"Arial");
Font font(&fontFamily, 36, FontStyleBold, UnitPixel);
SolidBrush solidBrush(Color(255, 255, 0, 0));
graphics.DrawString(L"A Clipping Region", 20, &font, 
   PointF(15, 25), &solidBrush);
graphics.DrawString(L"A Clipping Region", 20, &font, 
   PointF(15, 68), &solidBrush);