我有一个DrawingVisual
,想要画一棵葡萄树,然后在屏幕上显示,然后画一只狐狸。像这样:
public class Gif : DrawingVisual
{
void Draw_Geometry(Geometry geo)
{
using (DrawingContext dc = RenderOpen())
{
dc.DrawGeometry(Brushes.Brown, new Pen(Brushes.Brown, 0), geo);
}
}
void Draw_Grape ()
{
Draw_Geometry(grape);
}
void Draw_Fox ()
{
Draw_Geometry(fox);
}
}
问题是在致电Draw_Fox ()
时,DrawingContext
自动清除现有葡萄树。所以我想问一下在绘制新几何体时如何保留现有的绘图内容?谢谢!
答案 0 :(得分:2)
来自文档:
当您调用DrawingContext的Close方法时,当前绘图内容将替换为DrawingVisual定义的任何先前绘图内容。这意味着无法将新绘图内容附加到现有绘图内容。
我觉得这很清楚。不可能按字面意思做你所要求的。打开渲染的视觉效果将始终以新渲染取代之前的任何内容。
如果要追加当前渲染,则需要明确包含它。例如:
select kills, name from table where Kills in (select distinct Kills from table order by Kills desc limit 5)