【发布时间】:2014-08-01 14:16:27
【问题描述】:
使用System.Drawing.Graphics,我如何才能拥有“嵌套图形对象”。
主要目的是有几个裁剪区域。
这就是我想做的事情:
整个屏幕都是一个Graphics对象
红色区域是里面的另一个Graphic,被剪掉了
绿色区域是另一个,被剪掉了
内部图形对象可以是任何东西,不仅是DrawString
代码应如下所示:
using (var bmp = new System.Drawing.Bitmap(200, 200))
using (var mainG = System.Drawing.Graphics.FromImage(bmp))
using (var redG = ???)
using (var greenG = ???)
{
redG.SetClip(new RectangleF(...));
greenG.SetClip(new RectangleF(...));
// fill redG and greenG
}
注意:结果应该转到元文件并且是矢量图形,因此创建位图并将它们放置在 mainG 周围不是一种选择。
【问题讨论】:
-
不会使用
mainG.SetClip(boundsOfRedArea)为您工作吗?然后,您可以在mainG上绘制,就好像它是一个单独的redG图形对象一样。 -
那么如何裁剪绿色区域?
-
画完红色后,你只需
SetClip到绿色区域。 -
这个问题很笼统。可能不止两个区域,区域内也可能有区域
-
除了你不能有多个剪辑