internal static AbstractPlot Create(GdiEngine engine, ZChart chart, object source, ChartSetting chartSetting) { AbstractPlot cPlot = null; EChartType cChartType = chartSetting.ChartType; switch (cChartType) { case EChartType.Candlestick: cPlot = new PlotCandlestick(engine, source, chartSetting); break; case EChartType.HLC: cPlot = new PlotHlc(engine, source, chartSetting); break; case EChartType.OHLC: cPlot = new PlotOhlc(engine, source, chartSetting); break; case EChartType.ClosingLine: cPlot = new PlotClosingLine(engine, source, chartSetting); break; case EChartType.TextObject: cPlot = new PlotTextObject(engine, chart, source, chartSetting); break; case EChartType.TradeObject: cPlot = new PlotTradeObject(engine, source, chartSetting); break; } return(cPlot); }
internal void AddPlot(AbstractPlot plot, AxisY axisY = null) { if (axisY == null) { if (__cPlots.Count == 0 || plot.ChartSetting.Axis.IsCreateInstance) { Rectangle cAxisRect = this.LayerRectangle; cAxisRect.Width = 0; //將寬度設定為0(讓 AxisY 自動計算寬度) plot.CreateAxisY(__cProperty, cAxisRect); } else { plot.AxisY = __cPlots[0].AxisY; } } else { plot.AxisY = axisY; } EChartType cChartType = plot.ChartSetting.ChartType; switch (cChartType) { case EChartType.TextObject: case EChartType.TradeObject: plot.PlotIndex = -1; break; default: plot.PlotIndex = __iMaxPlotCount++; break; } __cPlots.Add(plot); }