Esempio n. 1
0
        private void DrawLabels(Graphics g,
                                BrushesStorage brushes,
                                Rectangle axisRect, YAxisAlignment alignment)
        {
            var canvasRect = Owner.CanvasRect;
            var worldRect  = Owner.WorldRect;
            var format     = PrepareStringFormat(alignment);
            var provider   = PrepareNumberFormat();
            var brush      = brushes.GetBrush(TextColor);

            using (format)
            {
                var rect = new Rectangle(axisRect.Left + 5, 0, ((axisRect.Width - 5) - 5) - 1, Font.Height);
                for (double i = LabelInfo.Max; i > LabelInfo.Min; i -= LabelInfo.MajorStep)
                {
                    var tf = (PointF)Conversion.WorldToScreen(new PointD(0.0, i), worldRect, canvasRect);
                    rect.Y = ((int)tf.Y) - (Font.Height / 2);
                    double num2 = i / LabelInfo.Exponent;
                    if (axisRect.Contains(rect))
                    {
                        g.DrawString(num2.ToString("N", provider), Font, brush, rect, format);
                    }
                }
                if (CurrentPrice.HasValue)
                {
                    // рисуем текущую цену в шкале
                    DrawSelectedPriceLabel(CurrentPrice.Value,
                                           brush, format, axisRect, worldRect, canvasRect, g);
                }

                if (SelectedLabelPrice.HasValue)
                {
                    // отметка цены для перекрестия
                    DrawSelectedPriceLabel(SelectedLabelPrice.Value,
                                           brush, format, axisRect, worldRect, canvasRect, g);
                }

                switch (ShipsDrawMode)
                {
                case ShipsDrawMode.None:
                    break;

                case ShipsDrawMode.Default:
                    DrawOrderShip(format, axisRect, worldRect, canvasRect, g);       //Рисуем кораблики к открытым сделкам
                    break;

                case ShipsDrawMode.Average:
                    DrawAverageOrderShip(format, axisRect, worldRect, canvasRect, g);       //Рисуем кораблики средних значений к открытым сделкам
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(ShipsDrawMode));
                }

                ExponentLabel.Draw(g, axisRect, alignment);
            }
        }
Esempio n. 2
0
 internal YAxis(Pane owner)
     : base(owner)
 {
     NumberDecimalDigitsAuto = true;
     MinAuto       = true;
     MaxAuto       = true;
     labelInfo     = new YAxisLabelInfo();
     LeftAxisRect  = new Rectangle(0, 0, 0, 0);
     RightAxisRect = new Rectangle(0, 0, 0, 0);
     exponentLabel = new ExponentLabel(this);
 }
Esempio n. 3
0
 internal YAxis(Pane owner)
     : base(owner)
 {
     NumberDecimalDigitsAuto = true;
     MinAuto = true;
     MaxAuto = true;
     labelInfo = new YAxisLabelInfo();
     LeftAxisRect = new Rectangle(0, 0, 0, 0);
     RightAxisRect = new Rectangle(0, 0, 0, 0);
     exponentLabel = new ExponentLabel(this);
 }
Esempio n. 4
0
 internal YAxis(Pane owner)
     : base(owner)
 {
     NumberDecimalDigitsAuto = true;
     MinAuto            = true;
     MaxAuto            = true;
     labelInfo          = new YAxisLabelInfo();
     LeftAxisRect       = new Rectangle(0, 0, 0, 0);
     RightAxisRect      = new Rectangle(0, 0, 0, 0);
     exponentLabel      = new ExponentLabel(this);
     showExtraPriceMark = AppConfig.GetBooleanParam("VerbosePriceMark", false);
 }
Esempio n. 5
0
        private void DrawLabels(Graphics g,
                                BrushesStorage brushes,
                                Rectangle axisRect, YAxisAlignment alignment)
        {
            var canvasRect = Owner.CanvasRect;
            var worldRect  = Owner.WorldRect;
            var format     = PrepareStringFormat(alignment);
            var provider   = PrepareNumberFormat();
            var brush      = brushes.GetBrush(TextColor);

            using (format)
            {
                var rect = new Rectangle(axisRect.Left + 5, 0, ((axisRect.Width - 5) - 5) - 1, Font.Height);
                for (double i = LabelInfo.Max; i > LabelInfo.Min; i -= LabelInfo.MajorStep)
                {
                    var tf = (PointF)Conversion.WorldToScreen(new PointD(0.0, i), worldRect, canvasRect);
                    rect.Y = ((int)tf.Y) - (Font.Height / 2);
                    double num2 = i / LabelInfo.Exponent;
                    if (axisRect.Contains(rect))
                    {
                        g.DrawString(num2.ToString("N", provider), Font, brush, rect, format);
                    }
                }
                if (CurrentPrice.HasValue)
                {
                    // рисуем текущую цену в шкале
                    DrawSelectedPriceLabel(CurrentPrice.Value,
                                           brush, format, axisRect, worldRect, canvasRect, g);
                }

                if (SelectedLabelPrice.HasValue)
                {
                    // отметка цены для перекрестия
                    DrawSelectedPriceLabel(SelectedLabelPrice.Value,
                                           brush, format, axisRect, worldRect, canvasRect, g);
                }
                ExponentLabel.Draw(g, axisRect, alignment);
            }
        }