Search Results for

    Show / Hide Table of Contents

    Class PathSegmentCollection

    A collection of path segment objects.

    Inheritance
    System.Object
    PathSegmentCollection
    Implements
    System.Collections.Generic.IReadOnlyList<IronSoftware.Abstractions.IPathSegment>
    System.Collections.Generic.IEnumerable<IronSoftware.Abstractions.IPathSegment>
    System.Collections.IEnumerable
    System.Collections.Generic.IReadOnlyCollection<IronSoftware.Abstractions.IPathSegment>
    Namespace: IronWord.Models
    Assembly: IronWord.dll
    Syntax
    public class PathSegmentCollection : Object

    PathSegmentCollection gathers the ordered IPathSegment items that trace the outline of a custom shape in a Word document. When a developer builds or inspects a freeform shape, the individual line and curve segments that define its geometry are held together here, read in the same sequence they were drawn. It is the container a developer works through whenever a shape is described by its path rather than by a simple preset rectangle or ellipse.

    The collection is read-only over its segments, exposing them for iteration and lookup once the path has been assembled. A developer typically meets the segments of a path when constructing a ShapeContent from a List<IPathSegment>, or when reading the geometry back from an existing shape, so this collection sits on the inspection side of building custom shape outlines.

    Count reports how many segments make up the path, and the Item[Int32] indexer reaches a single segment by position so the geometry can be examined point by point. Contains tests whether a particular segment is part of the path, while CopyTo writes the segments into an IPathSegment[] for code that needs a plain array. GetEnumerator backs a foreach over the segments in order, and ToList materializes them into a List<IPathSegment> when a mutable copy is convenient. Because IsReadOnly is true, treat the collection as a window onto an already-defined path: read, iterate, and copy the segments rather than expecting to add to them in place.

    using IronWord.Models;
    
    var segments = new PathSegmentCollection();
    Console.WriteLine($"Segments in path: {segments.Count}");
    foreach (IPathSegment segment in segments)
        Console.WriteLine(segment);

    The add image how-to, the add table how-to, and the document element tutorial show how shapes and drawing elements fit into a document.

    Constructors

    PathSegmentCollection()

    Create an empty PathSegmentCollection object.

    Declaration
    public PathSegmentCollection()

    PathSegmentCollection(IPathSegment[])

    Declaration
    public PathSegmentCollection(IPathSegment[] segments)
    Parameters
    Type Name Description
    IronSoftware.Abstractions.IPathSegment[] segments

    PathSegmentCollection(List<IPathSegment>)

    Declaration
    public PathSegmentCollection(List<IPathSegment> segments)
    Parameters
    Type Name Description
    System.Collections.Generic.List<IronSoftware.Abstractions.IPathSegment> segments

    Properties

    Count

    Declaration
    public int Count { get; }
    Property Value
    Type Description
    System.Int32

    IsReadOnly

    Declaration
    public bool IsReadOnly { get; }
    Property Value
    Type Description
    System.Boolean

    Item[Int32]

    Declaration
    public IPathSegment this[int index] { get; }
    Parameters
    Type Name Description
    System.Int32 index
    Property Value
    Type Description
    IronSoftware.Abstractions.IPathSegment

    Methods

    Contains(IPathSegment)

    Check whether this path segment contains a particular path segment or not.

    Declaration
    public bool Contains(IPathSegment segment)
    Parameters
    Type Name Description
    IronSoftware.Abstractions.IPathSegment segment

    The path segment to look for.

    Returns
    Type Description
    System.Boolean

    CopyTo(IPathSegment[], Int32)

    Copy this path segment collection to a IronSoftware.Abstractions.IPathSegment array at a specified index.

    Declaration
    public void CopyTo(IPathSegment[] array, int arrayIndex)
    Parameters
    Type Name Description
    IronSoftware.Abstractions.IPathSegment[] array

    The array to copy to.

    System.Int32 arrayIndex

    The index of the array to start the copy.

    GetEnumerator()

    Declaration
    public IEnumerator<IPathSegment> GetEnumerator()
    Returns
    Type Description
    System.Collections.Generic.IEnumerator<IronSoftware.Abstractions.IPathSegment>

    ToList()

    Get the points collection as a System.Collections.Generic.List<>.

    Declaration
    public List<IPathSegment> ToList()
    Returns
    Type Description
    System.Collections.Generic.List<IronSoftware.Abstractions.IPathSegment>

    Implements

    System.Collections.Generic.IReadOnlyList<>
    System.Collections.Generic.IEnumerable<>
    System.Collections.IEnumerable
    System.Collections.Generic.IReadOnlyCollection<>
    ☀
    ☾
    Downloads
    • Download with NuGet
    • Start for Free
    In This Article
    Back to top
    Install with NuGet
    %s requires a valid license key for further deployment. Get Trial Below.
    ironsuite
    Blue key in circleGet Started for Free
    30 days full access • No credit card required
    Test in a live environment

    Test in production without watermarks.
    Works wherever you need it to.

    Fully-functional product

    Get 30 days of fully functional product.
    Have it up and running in minutes.

    24/5 technical support

    Full access to our support engineering team during your product trial

    Grey key in circleGet Started for Free
    The trial form was submitted successfully.
    Grey check in circleTrial key delivered
    Your key has been issued and sent to your email.
    Calendar in circleBook Free Live Demo
    No cards • no pitches • no commitments Pick a time for a quick, personalized demo
    Get the most out of your 30-day trial with:

    Live product and key features walk-through

    Project-specific recommendations

    All your questions answered

    Grey key in circleBook Free Live Demo
    Your booking has been completed Check your e-mail for confirmation

    Want to deploy Iron Suite
    to a live project for FREE?

    What’s included?

    • Test in production without watermarks
    • 30 days fully functional product
    • 24/5 technical support during trial
    ironpdf Logo
    ironword Logo
    ironxl Logo
    ironppt Logo
    ironocr Logo
    ironbarcode Logo
    ironqr Logo
    ironprint Logo
    ironzip Logo
    ironwebscraper Logo
    Iron Software sales team
    Online 24/5
    Have Enterprise licensing requirements?
    Request Iron Suite Enterprise trial
    Key in blue circle

    Get your free 30-day Trial Key instantly

    Your trial license will be sent to your email address

    No limitations. 100% unlocked. No credit card.

    bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
    Or
    Key in blue circle

    Complete Your Trial Key Signup

    Tell us a little more about yourself.

    Key in blue circleNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
    Key in blue circle

    Your license key has been delivered to your inbox

    Can't find it? Check your spam folder.

    What’s next?
    Install with NuGet
    Add IronWord to your project
    Quickstart Guide
    Helpful resources to get started

    Need help getting started?

    Book a Free Live Demo

    See IronWord in action and get your licensing questions answered, or

    Key in blue circle

    Your demo request is in.

    You'll receive an invite via email shortly.

    What’s next?
    Explore Documentation
    Review Licensing Options
    badge_greencheck_in_yellowcircle
    Thank you
    Your trial key should be in the email.
    If it is not, please contact support@ironsoftware.com
    • Logo Aetna
    • Logo NASA
    • Logo GE
    • Logo Porsche
    • Logo USDA
    • Logo Qatar
    Join Millions of Engineers who’ve tried IronWord
    Your trial key should be in the email.
    If it is not, please contact support@ironsoftware.com