private void GenerateChartStructure()
{
// Main grid
Grid root = new Grid { Margin = new Thickness(10, 0, 20, 0) }; // Horizontal Margin for labels
root.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); // Column for chart
root.RowDefinitions.Add(new RowDefinition { Height = new GridLength(0, GridUnitType.Auto) }); // Column for labels
RootElement.Children.Add(root);
// Grid for labels (row 1)
_labels = new Grid();
Grid.SetRow(_labels, 1);
root.Children.Add(_labels);
// Grid for chart (row 0)
Grid chart = new Grid();
root.Children.Add(chart);
// Axis
Border axisX = new Border
{
BorderThickness = new Thickness(0.75),
BorderBrush = ForegroundColor,
Opacity = 0.5,
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Bottom,
Margin = new Thickness(-5, 0, -5, 0)
};
chart.Children.Add(axisX);
// Grid for series of points
_series = new Grid();
chart.Children.Add(_series);
}