我有多个返回 System.Windows.Media.DrawingVisual 对象的函数。我需要将所有 DrawingVisual 对象组合成一个图像。
private System.Windows.Media.DrawingVisual Shape1()
{
DrawingVisual dv = new DrawingVisual();
using (DrawingContext dc = dv.RenderOpen())
{
////--- draw shapes on 'dc'
}
return dv;
}
private System.Windows.Media.DrawingVisual Shape2()
{
DrawingVisual dv = new DrawingVisual();
using (DrawingContext dc = dv.RenderOpen())
{
////--- draw shapes on 'dc'
}
return dv;
}
在我的函数中,我需要组合返回的对象,如下所示
private void Combine()
{
System.Windows.Media.DrawingVisual s1 = Shape1();
System.Windows.Media.DrawingVisual s2 = Shape2();
//--- here i need to draw the s1 & s2 into an image and display on screen.
}
另一种方法是将所有 DrawingVisuals 保存到单独的 BitmapSource 对象中,然后再创建一个 DrawingVisual 并在其上绘制所有位图图像。但它的方式非常复杂。有没有更好的方法来做到这一点?