Getting more than one Legend object in LegendCollection to stack
vertically when chart renders
I'm trying to learn the mschart control. I want to create a histogram
chart that has a stat panel to the right that displays statistics about
the chart. I tried doing this by creating a Legend object docked to the
right.
I would like the boxes to stack vertically to the right of the chart.
Currently each box represents a Legend object in the LegendsCollection.
Code:
private void CreateStatPanel( Chart chart ) {
var legend = new Legend
{
Title = "Basic Stats",
TitleAlignment = StringAlignment.Near,
TitleBackColor = Color.LightGray,
Docking = Docking.Right,
BorderColor = Color.LightGray,
BorderWidth = 1,
BorderDashStyle = ChartDashStyle.Solid,
};
var item = new LegendItem();
var column = new LegendCell
{
CellType = LegendCellType.Text,
BackColor = Color.White,
ForeColor = Color.Black,
Text = "54 Data Values ",
Alignment = ContentAlignment.MiddleRight
};
var item2 = new LegendItem();
var column2 = new LegendCell
{
CellType = LegendCellType.Text,
BackColor = Color.White,
ForeColor = Color.Black,
Text = "Maximum \t 14",
Alignment = ContentAlignment.MiddleRight
};
var box = new Legend
{
Title = "Subgroup Stats",
TitleAlignment = StringAlignment.Near,
TitleBackColor = Color.LightGray,
BorderColor = Color.LightGray,
BorderWidth = 1,
BorderDashStyle = ChartDashStyle.Solid
};
var boxRowOne = new LegendItem();
var boxRowCell = new LegendCell
{
CellType = LegendCellType.Text,
BackColor = Color.White,
ForeColor = Color.Black,
Text = "n=6",
Alignment = ContentAlignment.MiddleRight
};
var boxRowTwo = new LegendItem();
var boxRowTwoCell = new LegendCell
{
CellType = LegendCellType.Text,
BackColor = Color.White,
ForeColor = Color.Black,
Text = "Estimated Sigma",
Alignment = ContentAlignment.MiddleLeft
};
var boxRowTwoCellTwo = new LegendCell
{
CellType = LegendCellType.Text,
BackColor = Color.White,
ForeColor = Color.Black,
Text = "1.82",
Alignment = ContentAlignment.MiddleLeft
};
item.Cells.Add( column );
item2.Cells.Add( column2 );
boxRowOne.Cells.Add(boxRowCell);
boxRowTwo.Cells.Add(boxRowTwoCell);
boxRowTwo.Cells.Add(boxRowTwoCellTwo);
box.CustomItems.Add(boxRowOne);
box.CustomItems.Add(boxRowTwo);
legend.CustomItems.Add( item );
legend.CustomItems.Add( item2 );
chart.Legends.Add( legend );
chart.Legends.Add( box );
chart.Series[ 0 ].IsVisibleInLegend = false;
}
No comments:
Post a Comment