Ejemplo n.º 1
0
 public virtual void Render(ISvgRenderer renderer)
 {
     if (!(this is ISharpDoNotPaint) || (this is SvgSymbolElement && this.ParentNode is SvgUseElement))
     {
         if (renderingNode == null)
         {
             renderingNode = renderer.GetRenderingNode(this);
         }
         if (renderingNode != null)
         {
             if (!renderingNode.NeedRender(renderer))
             {
                 return;
             }
             renderingNode.BeforeRender(renderer);
             renderingNode.Render(renderer);
             RenderChildren(renderer);
             renderingNode.AfterRender(renderer);
         }
     }
 }
Ejemplo n.º 2
0
        public virtual void CacheRenderingRegion(ISvgRenderer renderer)
        {
            if (renderingNode == null)
            {
                renderingNode = renderer.GetRenderingNode(this);
            }

            // Check if it has already been calculated
            if (renderingNode != null && renderingNode.ScreenRegion != RectangleF.Empty)
            {
                return;
            }

            // Invalidate the children
            foreach (XmlNode node in ChildNodes)
            {
                SvgElement element = node as SvgElement;
                if (element != null)
                {
                    element.CacheRenderingRegion(renderer);
                }
            }
        }