static void InitializeNewPaneLegend(ChartControl chart, SeparatePaneIndicator indicator) { Legend legend = new Legend(); chart.Legends.Add(legend); indicator.Legend = legend; legend.Tag = indicator.Tag; legend.DockTarget = indicator.Pane; legend.AlignmentHorizontal = LegendAlignmentHorizontal.Left; legend.Margins.All = chart.Legend.Margins.All; }
public static void InitializeSeparatePaneIndicator(ChartControl chart, SeparatePaneIndicator separatePaneIndicator) { XYDiagram diagram = chart.Diagram as XYDiagram; if (diagram != null) { XYDiagramPane pane = new XYDiagramPane(separatePaneIndicator.Name + " Pane"); pane.Tag = separatePaneIndicator.Tag; diagram.Panes.Add(pane); SecondaryAxisY axisY = new SecondaryAxisY(separatePaneIndicator.Name + " Axis"); axisY.Tag = separatePaneIndicator.Tag; axisY.Alignment = AxisAlignment.Far; axisY.GridLines.Visible = true; axisY.GridLines.MinorVisible = true; axisY.WholeRange.AlwaysShowZeroLevel = false; diagram.SecondaryAxesY.Add(axisY); separatePaneIndicator.Pane = pane; separatePaneIndicator.AxisY = axisY; InitializeNewPaneLegend(chart, separatePaneIndicator); UpdateAxisXVisibilityInPanes(diagram); } }
public static void RemoveIndicator(ChartControl chart, XYDiagramSeriesViewBase view, Indicator indicator) { SeparatePaneIndicator separatePaneIndicator = indicator as SeparatePaneIndicator; if (separatePaneIndicator != null) { foreach (Legend legend in chart.Legends) { if (legend.Tag == separatePaneIndicator.Tag) { chart.Legends.Remove(legend); break; } } XYDiagram diagram = chart.Diagram as XYDiagram; if (diagram != null) { foreach (XYDiagramPane pane in diagram.Panes) { if (pane.Tag == separatePaneIndicator.Tag) { diagram.Panes.Remove(pane); break; } } foreach (SecondaryAxisY axisY in diagram.SecondaryAxesY) { if (axisY.Tag == separatePaneIndicator.Tag) { diagram.SecondaryAxesY.Remove(axisY); break; } } } } view.Indicators.Remove(indicator); }