我正在使用sharpDx渲染控件创建一个应用程序,我想使用Direct2d rendertarget在控件中绘制多个图层,并且所有图层都应该是可见的。但问题是当我调用rendertarget.Clear(Color.Transparent)时,它用黑色清除屏幕,我看不到其他图层。如果我不调用Clear方法,那么它不会清除当前图层,我使用鼠标移动绘制线条,因此需要清除图层。我不能每次都绘制每一层,因为它可能有数千个对象要绘制,这可能会减慢应用程序。 那么如何清除透明背景的图层,这样我可以同时看到其他图层?或者还有其他方法吗?
//示例代码
if(!newObject)
DrawAllGeometry(renderTarget, strokeWidth);
else
{
layer = new Layer(renderTarget, renderTarget.Size);
var layerParam = new LayerParameters() { ContentBounds = RectangleF.Infinite };
renderTarget.PushLayer(ref layerParam, layer);
renderTarget.Clear(Color.Transparent); /* This code makes the screen black. I want this layer transparent, so i can see drawings of DrawAllGeometry() */
renderTarget.DrawRectangle(new RectangleF(canvasSP.X, -canvasSP.Y, width, height), new SolidColorBrush(renderTarget, Color.Green), strokeWidth * 5);
renderTarget.PopLayer();
}