Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }