GanttBarMiddleShape enumeration

Specifies the middle shape of a bar.

public enum GanttBarMiddleShape


LineBottom7Indicates Bottom line Gantt bar middle shape.
LineMiddle6Indicates Middle line Gantt bar middle shape.
LineTop5Indicates Top line Gantt bar middle shape.
None0Indicates None Gantt bar middle shape.
RectangleBar1Indicates Rectangle Gantt bar middle shape.
RectangleBottom4Indicates Rectangle bottom Gantt bar middle shape.
RectangleMiddle3Indicates Rectangle middle Gantt bar middle shape.
RectangleTop2Indicates Rectangle top Gantt bar middle shape.


Shows how to set custom bar styles of Gantt Chart project view.

public void ImplementCustomBarStyle()
        var project = new Project(DataDir + "Blank2010.mpp");

        var view = (GanttChartView)project.DefaultView;
        var custom = GetCustomBarStyle();

        // Add the custom bar style to the custom bar collection of the project view

        SimpleSaveOptions options = new MPPSaveOptions
            WriteViewData = true

        project.Save(OutDir + "ImplementCustomBarStyleWriting_out.mpp", options);
    catch (NotSupportedException ex)
            + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from");

public static GanttBarStyle GetCustomBarStyle()
    var style = new GanttBarStyle
        ShowForTaskUid = 1,
        MiddleShape = GanttBarMiddleShape.RectangleBottom,
        MiddleFillPattern = GanttBarFillPattern.MediumFill,
        MiddleShapeColor = Color.Blue,

        StartShape = GanttBarEndShape.ArrowDown,
        StartShapeColor = Color.Red,

        EndShape = GanttBarEndShape.ArrowUp,
        EndShapeColor = Color.Yellow,

        LeftField = Field.TaskResourceNames,
        RightField = Field.TaskName,
        TopField = Field.TaskStart,
        BottomField = Field.TaskFinish,
        InsideField = Field.TaskDuration

    return style;

Shows how to use custom bar styles of Gantt Chart view.

var project = new Project(DataDir + "Project2.mpp");

var ganttChartView = (GanttChartView)project.Views.First(v => v.Name == "Gantt &Chart");
PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.Timescale = Timescale.DefinedInView;
saveOptions.ViewSettings = ganttChartView;

// Bar styles can be either task-specific (located in GanttChartView.CustomBarStyles)
// of category-specific (located in GanttChartView.BarStyles)
foreach (GanttBarStyle ganttBarStyle in ganttChartView.CustomBarStyles)
    if (ganttBarStyle.ShowForTaskUid != 4)

    // For demonstration purposes we are modifying style for Task with Unique ID = 4
    // Here we set field (TaskName) to render to the left of the task bar.
    ganttBarStyle.LeftField = Field.TaskName;
    // Here we set custom converter to control which text should be rendered inside the task bar.
    ganttBarStyle.InsideBarTextConverter = task => "Hours rem.: " + (int)task.Get(Tsk.RemainingWork).TimeSpan.TotalHours;

    ganttBarStyle.MiddleShapeColor = Color.Green;
    ganttBarStyle.MiddleShape = GanttBarMiddleShape.LineTop;
    ganttBarStyle.StartShape = GanttBarEndShape.LeftBracket;
    ganttBarStyle.StartShapeColor = Color.Aqua;
    ganttBarStyle.EndShape = GanttBarEndShape.RightBracket;
    ganttBarStyle.EndShapeColor = Color.Aquamarine;

foreach (GanttBarStyle ganttBarStyle in ganttChartView.BarStyles)
    if (!ganttBarStyle.ShowForCategories.Contains(GanttBarShowFor.Milestone))

    // For demonstration purposes we are modifying styles applicable to milestone tasks.

    ganttBarStyle.StartShape = GanttBarEndShape.Diamond;
    ganttBarStyle.RightField = Field.TaskActualFinish;
    ganttBarStyle.TopBarTextConverter = task => task.Get(Tsk.ActualStart).Day.ToString();

project.Save(OutDir + "WorkWithGanttChartViewBarStyles_out.pdf", saveOptions);

See Also