public void PopLayer()
Each PushLayer must have a matching PopLayer call. If there are more PopLayer calls than PushLayer calls, the EndDraw return false indicates that an error occurs.
using Leadtools.Windows.D2DRendering;
public void D2DSurfacePushLayerExample()
{
//Create a new instance of the D2DSurface object
D2DSurface d2dSurface = new D2DSurface();
//Set the surface Size
d2dSurface.SurfaceSize = new Size(1000, 1000);
//Pass an empty rect to redraw the entire surface
d2dSurface.BeginDraw(Rect.Empty);
//Save the surface drawing state
D2DDrawingState drawingState = d2dSurface.Save();
//Create an ellipse geometry
EllipseGeometry ellipse = new EllipseGeometry();
ellipse.Center = new Point(500, 500);
ellipse.RadiusX = 100;
ellipse.RadiusY = 100;
GeometryGroup geometryGroup = new GeometryGroup();
geometryGroup.Children.Add(ellipse);
//Push geometry to receive all subsequent drawing operations
d2dSurface.PushLayer(geometryGroup);
//Create a rect having the specified dimensions
Rect rect = new Rect(40, 40, 500, 200);
//Create a new instance of a brush from a new solid color brush
SolidColorBrush fill = new SolidColorBrush(Colors.Green);
//Clear the pushed Layer with the fill brush
d2dSurface.Clear(fill);
//Stop redirecting drawing operations to the layer
d2dSurface.PopLayer();
//Restore the surface drawing state
d2dSurface.Restore(drawingState);
//End the Draw operation and invalidate the surface
d2dSurface.EndDraw();
d2dSurface.Invalidate(Rect.Empty);
}