corelibraries-devexpress-dot-xtracharts-dot-sidebysidebarseriesview.md
Gets or sets a value indicating whether all bars of the same series should always have the same width, or they may have different widths if some points of other series are missing.
Namespace : DevExpress.XtraCharts
Assembly : DevExpress.XtraCharts.v25.2.dll
NuGet Package : DevExpress.Charts
[XtraChartsLocalizableCategory(XtraChartsCategory.Layout)]
public bool EqualBarWidth { get; set; }
<XtraChartsLocalizableCategory(XtraChartsCategory.Layout)>
Public Property EqualBarWidth As Boolean
| Type | Description |
|---|---|
| Boolean |
true if all bars of the same series should always have the same width; otherwise, false.
|
Use the EqualBarWidth to manually control whether neighboring bars should be extended to fill the empty area, when some bars are missing in the same data point.
Note
The EqualBarWidth property is synchronized in all Side-by-Side Bar series which are present in a ChartControl, and all of them always return the same value. So, changing the EqualBarWidth property value for one Side-by-Side Bar series view affects the EqualBarWidth property in all other Side-by-Side Bar series views.
For the same reason, when trying to set the EqualBarWidth property before a Series is added to a chart’s collection, an ArgumentException is thrown.
This example demonstrates how to create a ChartControl with two series of the SideBySideBarSeriesView type at runtime:
Add a chart to the WinForms project and specify the chart’s data source.
Create two series and add them to the chart.
Configure series view settings.
using DevExpress.XtraCharts;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
// ...
namespace SideBySideBar2D {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
// Create an empty chart.
ChartControl chart = new ChartControl();
// Bind a chart to a data source.
chart.DataSource = DataPoint.GetDataPoints();
// Create the first series and specify its data members.
Series series1 = new Series("2018", ViewType.Bar);
series1.ArgumentDataMember = "Region";
series1.ValueDataMembers.AddRange("Value1");
// Create the second series and specify its data members.
Series series2 = new Series("2019", ViewType.Bar);
series2.ArgumentDataMember = "Region";
series2.ValueDataMembers.AddRange("Value2");
// Add series to the chart.
chart.Series.AddRange(new Series[] { series1, series2 });
// Change the first series's view settings.
SideBySideBarSeriesView view1 = series1.View as SideBySideBarSeriesView;
// The BarDistance, BarDistanceFixed, and EqualBarWidth property values are synchronized
// in all Side-by-Side Bar Series in a ChartControl.
// So, you can specify them only for one series view.
view1.BarDistance = 0.1;
view1.BarDistanceFixed = 2;
view1.BarWidth = 0.4;
view1.EqualBarWidth = true;
view1.Color = Color.MediumSeaGreen;
// Change the second series's view settings.
SideBySideBarSeriesView view2 = series2.View as SideBySideBarSeriesView;
view2.BarWidth = 0.4;
view2.Color = Color.MediumVioletRed;
// Change the legend position.
chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right;
chart.Legend.AlignmentVertical = LegendAlignmentVertical.Bottom;
// Rotate the diagram.
((XYDiagram)chart.Diagram).Rotated = true;
// Configure the x-axis appearance.
((XYDiagram)chart.Diagram).AxisX.Tickmarks.MinorVisible = false;
((XYDiagram)chart.Diagram).AxisX.Reverse = true;
// Add a title to the chart.
ChartTitle chartTitle1 = new ChartTitle();
chartTitle1.Text = "Sales by Region";
chart.Titles.Add(chartTitle1);
// Add the chart to the form.
chart.Dock = DockStyle.Fill;
this.Controls.Add(chart);
}
}
public class DataPoint {
public string Region { get; set; }
public double Value1 { get; set; }
public double Value2 { get; set; }
public DataPoint(string region, double value1, double value2) {
this.Region = region;
this.Value1 = value1;
this.Value2 = value2;
}
public static BindingList<DataPoint> GetDataPoints() {
BindingList<DataPoint> data = new BindingList<DataPoint> {
new DataPoint("Asia", 4.7685, 5.289),
new DataPoint("Australia", 1.9576, 2.2727),
new DataPoint("Europe", 3.0884, 3.7257),
new DataPoint("North America", 3.7477, 4.1825),
new DataPoint("South America", 1.8945, 2.1172),
};
return data;
}
}
}
Imports DevExpress.XtraCharts
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Namespace SideBySideBar2D
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
' Create an empty chart.
Dim chart As ChartControl = New ChartControl
' Bind a chart to a data source.
chart.DataSource = DataPoint.GetDataPoints
' Create the first series and specify its data members.
Dim series1 As Series = New Series("2018", ViewType.Bar)
series1.ArgumentDataMember = "Region"
series1.ValueDataMembers.AddRange("Value1")
' Create the second series and specify its data members.
Dim series2 As Series = New Series("2019", ViewType.Bar)
series2.ArgumentDataMember = "Region"
series2.ValueDataMembers.AddRange("Value2")
' Add series to the chart.
chart.Series.AddRange(New Series() {series1, series2})
' Change the first series's view settings.
Dim view1 As SideBySideBarSeriesView = TryCast(series1.View, SideBySideBarSeriesView)
' The BarDistance, BarDistanceFixed, and EqualBarWidth property values are synchronized
' in all Side-by-Side Bar Series in a ChartControl.
' So, you can specify them only for one series view.
view1.BarDistance = 0.1
view1.BarDistanceFixed = 2
view1.BarWidth = 0.4
view1.EqualBarWidth = True
view1.Color = Color.MediumSeaGreen
' Change the second series's view settings.
Dim view2 As SideBySideBarSeriesView = TryCast(series2.View, SideBySideBarSeriesView)
view2.BarWidth = 0.4
view2.Color = Color.MediumVioletRed
' Change the legend position.
chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right
chart.Legend.AlignmentVertical = LegendAlignmentVertical.Bottom
' Rotate the diagram.
CType(chart.Diagram, XYDiagram).Rotated = True
' Configure the x-axis appearance.
CType(chart.Diagram, XYDiagram).AxisX.Tickmarks.MinorVisible = False
CType(chart.Diagram, XYDiagram).AxisX.Reverse = True
' Add a title to the chart.
Dim chartTitle1 As ChartTitle = New ChartTitle
chartTitle1.Text = "Sales by Region"
chart.Titles.Add(chartTitle1)
' Add the chart to the form.
chart.Dock = DockStyle.Fill
Me.Controls.Add(chart)
End Sub
End Class
Public Class DataPoint
Public Property Region As String
Public Property Value1 As Double
Public Property Value2 As Double
Public Sub New(ByVal region As String, ByVal value1 As Double, ByVal value2 As Double)
Me.Region = region
Me.Value1 = value1
Me.Value2 = value2
End Sub
Public Shared Function GetDataPoints() As BindingList(Of DataPoint)
Dim data As BindingList(Of DataPoint) = New BindingList(Of DataPoint) From {
New DataPoint("Asia", 4.7685, 5.289),
New DataPoint("Australia", 1.9576, 2.2727),
New DataPoint("Europe", 3.0884, 3.7257),
New DataPoint("North America", 3.7477, 4.1825),
New DataPoint("South America", 1.8945, 2.1172)
}
Return data
End Function
End Class
End Namespace
See Also