Back to Devexpress

SideBySideGanttSeriesView Class

corelibraries-devexpress-dot-xtracharts-2ffe343d.md

latest10.8 KB
Original Source

SideBySideGanttSeriesView Class

Represents a series view of the Side-by-Side Gantt type.

Namespace : DevExpress.XtraCharts

Assembly : DevExpress.XtraCharts.v25.2.dll

NuGet Package : DevExpress.Charts

Declaration

csharp
public class SideBySideGanttSeriesView :
    GanttSeriesView,
    ISideBySideBarSeriesView,
    IBarSeriesView
vb
Public Class SideBySideGanttSeriesView
    Inherits GanttSeriesView
    Implements ISideBySideBarSeriesView,
               IBarSeriesView

Remarks

The SideBySideGanttSeriesView class provides the functionality of a series view for the side-by-side Gantt type within a chart control.

The SideBySideGanttSeriesView class inherits properties and methods from the base GanttSeriesView class which defines the common settings of Gantt series views.

Note that a particular view type can be defined for a series via its SeriesBase.View property.

For more information on series views of the side-by-side Gantt type please see the Side-by-Side Gantt Chart topic.

Example

The following example demonstrates how to create a ChartControl with two series of the SideBySideGanttSeriesView type, and add this chart to a form at runtime. Before proceeding with this example, first create a Windows Forms Application in Visual Studio, and include all necessary assemblies to the References list of your project.

Then, add the following code to the Form.Load event handler.

csharp
using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraCharts;
// ...

private void Form1_Load(object sender, EventArgs e) {
    // Create a new chart.
    ChartControl ganttChart = new ChartControl();

    // Create two Gantt series.
    Series series1 = new Series("Estimation", ViewType.SideBySideGantt);
    Series series2 = new Series("Implementation", ViewType.SideBySideGantt);

    // Specify the date-time value scale type,
    // because it is qualitative by default.
    series1.ValueScaleType = ScaleType.DateTime;
    series2.ValueScaleType = ScaleType.DateTime;

    // Add points to them.
    series1.Points.Add(new SeriesPoint("Task 1", new DateTime[] { 
    new DateTime(2006, 8, 16), new DateTime(2006, 8, 31) }));
    series1.Points.Add(new SeriesPoint("Task 2", new DateTime[] { 
    new DateTime(2006, 8, 31), new DateTime(2006, 9, 15) }));
    series1.Points.Add(new SeriesPoint("Task 3", new DateTime[] { 
    new DateTime(2006, 9, 15), new DateTime(2006, 9, 30) }));
    series1.Points.Add(new SeriesPoint("Task 4", new DateTime[] { 
    new DateTime(2006, 9, 30), new DateTime(2006, 10, 15) }));

    series2.Points.Add(new SeriesPoint("Task 1", new DateTime[] { 
    new DateTime(2006, 8, 16), new DateTime(2006, 9, 5) }));
    series2.Points.Add(new SeriesPoint("Task 2", new DateTime[] { 
    new DateTime(2006, 9, 5), new DateTime(2006, 9, 22) }));
    series2.Points.Add(new SeriesPoint("Task 3", new DateTime[] { 
    new DateTime(2006, 9, 22), new DateTime(2006, 10, 10) }));
    series2.Points.Add(new SeriesPoint("Task 4", new DateTime[] { 
    new DateTime(2006, 10, 10), new DateTime(2006, 10, 23) }));

    // Add both series to the chart.
    ganttChart.Series.AddRange(new Series[] { series1, series2});

    // Access the view-type-specific options of the second series.
    SideBySideGanttSeriesView myView2 = (SideBySideGanttSeriesView)series2.View;

    myView2.MaxValueMarker.Visible = true;
    myView2.MaxValueMarker.Kind = MarkerKind.Star;
    myView2.MaxValueMarker.StarPointCount = 5;
    myView2.MaxValueMarker.Size = 10;

    myView2.MinValueMarker.Visible = true;
    myView2.MinValueMarker.Kind = MarkerKind.Circle;
    myView2.MinValueMarker.Size = 10;

    myView2.BarWidth = 0.5;

    // Customize the chart (if necessary).
    GanttDiagram myDiagram = (GanttDiagram)ganttChart.Diagram;

    myDiagram.AxisX.Title.Visible = true;
    myDiagram.AxisX.Title.Text = "Tasks";
    myDiagram.AxisY.Interlaced = true;
    myDiagram.AxisY.GridSpacing = 10;
    myDiagram.AxisY.Label.Angle = -30;
    myDiagram.AxisY.DateTimeOptions.Format = DateTimeFormat.MonthAndDay;

    // Customize the legend (if necessary).
    ganttChart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right;
    ganttChart.Legend.AlignmentVertical = LegendAlignmentVertical.TopOutside;
    ganttChart.Legend.Direction = LegendDirection.LeftToRight;

    // Add a constant line.
    ConstantLine deadline = new ConstantLine("Deadline", new DateTime(2006, 10, 15));
    deadline.ShowInLegend = false;
    deadline.Title.Alignment = ConstantLineTitleAlignment.Far;
    deadline.Color = Color.Red;
    myDiagram.AxisY.ConstantLines.Add(deadline);

    // Add a title to the chart (if necessary).
    ganttChart.Titles.Add(new ChartTitle());
    ganttChart.Titles[0].Text = "A Side-by-Side Gantt Chart";

    // Add the chart to the form.
    ganttChart.Dock = DockStyle.Fill;
    this.Controls.Add(ganttChart);
}
vb
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.XtraCharts
' ...

Private Sub Form1_Load(ByVal sender As Object, _ 
ByVal e As EventArgs) Handles MyBase.Load
    ' Create a new chart.
    Dim ganttChart As New ChartControl()

    ' Create two Gantt series.
    Dim series1 As New Series("Estimation", ViewType.SideBySideGantt)
    Dim series2 As New Series("Implementation", ViewType.SideBySideGantt)

    ' Specify the date-time value scale type,
    ' because it is qualitative by default.
    series1.ValueScaleType = ScaleType.DateTime
    series2.ValueScaleType = ScaleType.DateTime

    ' Add points to them.
    series1.Points.Add(New SeriesPoint("Task 1", New DateTime() _ 
{ New DateTime(2006, 8, 16), New DateTime(2006, 8, 31) }))
    series1.Points.Add(New SeriesPoint("Task 2", New DateTime() _ 
{ New DateTime(2006, 8, 31), New DateTime(2006, 9, 15) }))
    series1.Points.Add(New SeriesPoint("Task 3", New DateTime() _ 
{ New DateTime(2006, 9, 15), New DateTime(2006, 9, 30) }))
    series1.Points.Add(New SeriesPoint("Task 4", New DateTime() _ 
{ New DateTime(2006, 9, 30), New DateTime(2006, 10, 15) }))

    series2.Points.Add(New SeriesPoint("Task 1", New DateTime() _ 
{ New DateTime(2006, 8, 16), New DateTime(2006, 9, 5) }))
    series2.Points.Add(New SeriesPoint("Task 2", New DateTime() _ 
{ New DateTime(2006, 9, 5), New DateTime(2006, 9, 22) }))
    series2.Points.Add(New SeriesPoint("Task 3", New DateTime() _ 
{ New DateTime(2006, 9, 22), New DateTime(2006, 10, 10) }))
    series2.Points.Add(New SeriesPoint("Task 4", New DateTime() _ 
{ New DateTime(2006, 10, 10), New DateTime(2006, 10, 23) }))

    ' Add both series to the chart.
    ganttChart.Series.AddRange(New Series() { series1, series2})

    ' Access the view-type-specific options of the second series.
    Dim myView2 As SideBySideGanttSeriesView = _ 
        CType(series2.View, SideBySideGanttSeriesView)

    myView2.MaxValueMarker.Visible = True
    myView2.MaxValueMarker.Kind = MarkerKind.Star
    myView2.MaxValueMarker.StarPointCount = 5
    myView2.MaxValueMarker.Size = 10

    myView2.MinValueMarker.Visible = True
    myView2.MinValueMarker.Kind = MarkerKind.Circle
    myView2.MinValueMarker.Size = 10

    myView2.BarWidth = 0.5

    ' Customize the chart (if necessary).
    Dim myDiagram As GanttDiagram = CType(ganttChart.Diagram, GanttDiagram)

    myDiagram.AxisX.Title.Visible = True
    myDiagram.AxisX.Title.Text = "Tasks"
    myDiagram.AxisY.Interlaced = True
    myDiagram.AxisY.GridSpacing = 10
    myDiagram.AxisY.Label.Angle = -30
    myDiagram.AxisY.DateTimeOptions.Format = DateTimeFormat.MonthAndDay

    ' Customize the legend (if necessary).
    ganttChart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right
    ganttChart.Legend.AlignmentVertical = LegendAlignmentVertical.TopOutside
    ganttChart.Legend.Direction = LegendDirection.LeftToRight

    ' Add a constant line.
    Dim deadline As New ConstantLine("Deadline", New DateTime(2006, 10, 15))
    deadline.ShowInLegend = False
    deadline.Title.Alignment = ConstantLineTitleAlignment.Far
    deadline.Color = Color.Red
    myDiagram.AxisY.ConstantLines.Add(deadline)

    ' Add a title to the chart (if necessary).
    ganttChart.Titles.Add(New ChartTitle())
    ganttChart.Titles(0).Text = "A Side-by-Side Gantt Chart"

    ' Add the chart to the form.
    ganttChart.Dock = DockStyle.Fill
    Me.Controls.Add(ganttChart)
End Sub

Implements

IXtraSerializable

IXYSeriesView2D

IXtraSupportDeserializeCollectionItem

ISupportTransparency

Inheritance

Object ChartElement SeriesViewBase XYDiagram2DSeriesViewBase XYDiagramSeriesViewBase SeriesViewColorEachSupportBase BarSeriesView RangeBarSeriesView GanttSeriesView SideBySideGanttSeriesView

See Also

SideBySideGanttSeriesView Members

GanttSeriesView

How to: Create a Gantt Chart with Task Links

DevExpress.XtraCharts Namespace