Add and Format Shapes in PowerPoint in C#

·

3 min read

In PowerPoint, shapes are versatile graphical elements that allow you to visually communicate ideas, highlight key points, create diagrams, and add a touch of creativity to your slides. This article is going to share how to add and format shapes in a PowerPoint presentation in C# using a free .NET library.

Install the Free Library

First, it’s necessary to download the free library - Free Spire.Presentation for .NET via the link below or install it directly via Nuget.

https://www.e-iceblue.com/Download/download-presentation-for-net-free.html

Add and Format Shapes in PowerPoint Using C#.

With the free .NET PowerPoint API, you can insert various shapes such as rectangles, hexagons, ellipses, triangles, arrows, etc. at a specified location in a PowerPoint slide through the ISlide.Shapes.AppendShape(ShapeType shapeType, RectangleF rectangle) method. Below is an example of adding 6 different shapes and setting their fill effects.

Sample C# code.

using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Drawing;

namespace AddShapes
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Create a Presentation instance
            Presentation presentation = new Presentation();


            //Get the first slide
            ISlide slide = presentation.Slides[0];

            //Append a triangle shape to the slide
            IAutoShape shape = slide.Shapes.AppendShape(ShapeType.Triangle, new RectangleF(100, 130, 100, 100));
            //Fill the shape with solid color
            shape.Fill.FillType = FillFormatType.Solid;
            shape.Fill.SolidColor.Color = Color.Cyan;
            //Set the outline color for the shape
            shape.ShapeStyle.LineColor.Color = Color.White;

            //Append an ellipse shape to the slide
            shape = slide.Shapes.AppendShape(ShapeType.Ellipse, new RectangleF(280, 130, 150, 100));
            //Fill the shape with picture
            string picUrl = "bg.jpg";
            shape.Fill.FillType = FillFormatType.Picture;
            shape.Fill.PictureFill.Picture.Url = picUrl;
            shape.Fill.PictureFill.FillType = PictureFillType.Stretch;
            //Set the outline color for the shape
            shape.ShapeStyle.LineColor.Color = Color.CornflowerBlue;

            //Append a heart shape to the slide
            shape = slide.Shapes.AppendShape(ShapeType.Heart, new RectangleF(500, 130, 130, 100));
            //Add text to the shape
            shape.TextFrame.Text = "Heart";
            //Fill the shape with solid color
            shape.Fill.FillType = FillFormatType.Solid;
            shape.Fill.SolidColor.Color = Color.Pink;
            //Set the outline color for the shape
            shape.ShapeStyle.LineColor.Color = Color.LightGray;

            //Append a five-pointed star shape to the slide 
            shape = slide.Shapes.AppendShape(ShapeType.FivePointedStar, new RectangleF(100, 270, 150, 150));
            //Fill the shape with gradient color
            shape.Fill.FillType = FillFormatType.Gradient;
            shape.Fill.SolidColor.Color = Color.Gold;
            //Set the outline color for the shape
            shape.ShapeStyle.LineColor.Color = Color.White;

            //Append a rectangle shape to the slide
            shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(310, 290, 100, 120));
            //Fill the shape with solid color
            shape.Fill.FillType = FillFormatType.Solid;
            shape.Fill.SolidColor.Color = Color.LightGreen;
            //Set the outline color for the shape
            shape.ShapeStyle.LineColor.Color = Color.Gray;

            //Append an arrow shape to the slide 
            shape = slide.Shapes.AppendShape(ShapeType.BentUpArrow, new RectangleF(500, 300, 150, 100));
            //Fill the shape with gradient color
            shape.Fill.FillType = FillFormatType.Gradient;
            shape.Fill.Gradient.GradientStops.Append(1f, KnownColors.Red);
            shape.Fill.Gradient.GradientStops.Append(0, KnownColors.PowderBlue);
            //Set the outline color for the shape
            shape.ShapeStyle.LineColor.Color = Color.White;

            //Save the result document
            presentation.SaveToFile("AddShapes.pptx", FileFormat.Pptx2010);
            presentation.Dispose();
        }
    }
}

Using Free Spire.Presentation for .NET, you can also add other elements in PowerPoint presentations, such as inserting tables, creating smart art, and adding charts, images and comments.