System.Drawing.Drawing2D.GraphicsPath.AddPath C# (CSharp) Method

AddPath() public method

public AddPath ( GraphicsPath addingPath, bool connect ) : void
addingPath GraphicsPath
connect bool
return void
        public void AddPath(GraphicsPath addingPath, bool connect)
        {
            if (addingPath == null)
                throw new ArgumentNullException ("addingPath");

            var length = addingPath.PointCount;

            if (length < 1)
                return;

            var pts = addingPath.PathPoints;
            var types = addingPath.PathTypes;

            // We can connect only open figures. If first figure is closed
             		// it can't be connected.
            var first = connect ? GetFirstPointType() : PathPointType.Start;

            AppendPoint (pts[0], first, false);

            for (int i = 1; i < length; i++)
                AppendPoint (pts [i], (PathPointType)types [i], false);
        }

Usage Example

        /// <summary>
        /// 
        /// </summary>
        /// <param name="region"></param>
        /// <param name="element"></param>
        private void CombinePaths(GraphicsPath path, SvgElement element)
        {
            var graphicsElement = element as SvgVisualElement;

            if (graphicsElement != null && graphicsElement.Path != null)
            {
                path.FillMode = (graphicsElement.ClipRule == SvgClipRule.NonZero) ? FillMode.Winding : FillMode.Alternate;

                GraphicsPath childPath = graphicsElement.Path;

                if (graphicsElement.Transforms != null)
                {
                    foreach (SvgTransform transform in graphicsElement.Transforms)
                    {
                        childPath.Transform(transform.Matrix);
                    }
                }

                path.AddPath(childPath, false);
            }

            foreach (SvgElement child in element.Children)
            {
                this.CombinePaths(path, child);
            }
        }
All Usage Examples Of System.Drawing.Drawing2D.GraphicsPath::AddPath