Beispiel #1
0
        public OxyArea(OxyAreaSettings settings, OxyChartPainter owner)
        {
            this.chart_name = owner.chart_name;

            area_settings = settings;
            Tag           = area_settings.Tag;
            this.owner    = owner;

            candles_in_run = area_settings.candles_in_run;
            empty_gap      = area_settings.empty_gap;

            plot_model = new PlotModel()
            {
                PlotAreaBorderThickness = new OxyThickness(0),
                TextColor         = OxyColors.AliceBlue,
                EdgeRenderingMode = EdgeRenderingMode.PreferSpeed
            };

            plot_view = new PlotView()
            {
                Background = area_settings.Brush_background,
            };

            drawed_name = new CustomTextAnnotation()
            {
                Text       = (string)Tag,
                TextColor  = OxyColor.FromArgb(255, 98, 103, 113),
                Background = OxyColors.Transparent,
                Stroke     = OxyColors.Transparent,
                Tag        = "drawed_name",
                Layer      = OxyPlot.Annotations.AnnotationLayer.AboveSeries,
                TextHorizontalAlignment = HorizontalAlignment.Left,
                TextVerticalAlignment   = VerticalAlignment.Middle,
                FontSize = 24,
            };

            annotation_price = new CustomTextAnnotation()
            {
                Layer                   = AnnotationLayer.AboveSeries,
                ClipByXAxis             = false,
                ClipByYAxis             = false,
                Background              = OxyColor.Parse("#FF5500"),
                TextColor               = OxyColors.AliceBlue,
                Stroke                  = OxyColor.Parse("#FF5500"),
                TextHorizontalAlignment = HorizontalAlignment.Right,
                TextVerticalAlignment   = VerticalAlignment.Middle,
                Padding                 = new OxyThickness(2),
                EdgeRenderingMode       = EdgeRenderingMode.PreferSpeed,
                Tag = "annotation_price"
            };


            annotation_date_time = new CustomTextAnnotation()
            {
                Layer                   = AnnotationLayer.AboveSeries,
                ClipByXAxis             = false,
                ClipByYAxis             = true,
                Background              = OxyColor.Parse("#FF5500"),
                TextColor               = OxyColors.AliceBlue,
                Stroke                  = OxyColor.Parse("#FF5500"),
                TextHorizontalAlignment = HorizontalAlignment.Center,
                TextVerticalAlignment   = VerticalAlignment.Bottom,
                Padding                 = new OxyThickness(2),
                EdgeRenderingMode       = EdgeRenderingMode.PreferSpeed,
                Tag = "annotation_date_time"
            };


            date_time_axis_X = new DateTimeAxis()
            {
                TicklineColor          = area_settings.TicklineColor,
                AxislineStyle          = area_settings.AxislineStyle,
                AxislineThickness      = 1,
                AxislineColor          = area_settings.AxislineColor,
                MajorGridlineColor     = area_settings.MajorGridlineColor,
                MajorGridlineStyle     = area_settings.MajorGridlineStyle,
                MajorGridlineThickness = area_settings.MajorGridlineThickness,
                MinorGridlineColor     = area_settings.MinorGridlineColor,
                MinorGridlineStyle     = area_settings.MinorGridlineStyle,
                MinorGridlineThickness = area_settings.MinorGridlineThickness,
                Key               = "DateTime",
                IsAxisVisible     = false,
                Position          = AxisPosition.Bottom,
                EdgeRenderingMode = area_settings.EdgeRenderingMode,
            };


            linear_axis_Y = new LinearAxis()
            {
                TicklineColor          = area_settings.TicklineColor,
                AxislineStyle          = area_settings.AxislineStyle,
                AxislineThickness      = 1,
                AxislineColor          = area_settings.AxislineColor,
                MajorGridlineColor     = area_settings.MajorGridlineColor,
                MajorGridlineStyle     = area_settings.MajorGridlineStyle,
                MajorGridlineThickness = area_settings.MajorGridlineThickness,
                MinorGridlineColor     = area_settings.MinorGridlineColor,
                MinorGridlineStyle     = area_settings.MinorGridlineStyle,
                MinorGridlineThickness = area_settings.MinorGridlineThickness,
                IsAxisVisible          = false,
                Layer             = AxisLayer.BelowSeries,
                Position          = AxisPosition.Right,
                EdgeRenderingMode = area_settings.EdgeRenderingMode,
            };


            if (settings.cursor_Y_is_active)
            {
                cursor_Y = new LineAnnotation()
                {
                    Type              = LineAnnotationType.Vertical,
                    Color             = area_settings.CursorColor,
                    Selectable        = false,
                    ClipByYAxis       = false,
                    X                 = double.MinValue,
                    StrokeThickness   = 0.5,
                    Layer             = AnnotationLayer.BelowSeries,
                    EdgeRenderingMode = EdgeRenderingMode.Automatic,
                    LineStyle         = LineStyle.LongDash
                };
            }

            if (settings.cursor_X_is_active)
            {
                cursor_X = new LineAnnotation()
                {
                    Type              = LineAnnotationType.Horizontal,
                    Color             = area_settings.CursorColor,
                    ClipByXAxis       = false,
                    Selectable        = false,
                    Y                 = double.MinValue,
                    StrokeThickness   = 0.5,
                    Layer             = AnnotationLayer.BelowSeries,
                    EdgeRenderingMode = EdgeRenderingMode.Automatic,
                    LineStyle         = LineStyle.LongDash
                };
            }

            plot_model.Annotations.Add(annotation_price);
            plot_model.Annotations.Add(annotation_date_time);


            plot_model.Axes.Add(date_time_axis_X);
            plot_model.Axes.Add(linear_axis_Y);

            if (area_settings.cursor_X_is_active)
            {
                plot_model.Annotations.Add(cursor_X);
            }

            if (area_settings.cursor_Y_is_active)
            {
                plot_model.Annotations.Add(cursor_Y);
            }

            plot_view.Model = plot_model;
        }
Beispiel #2
0
        public ControlPanelArea(OxyAreaSettings settings, List <OxyArea> all_areas, OxyChartPainter owner) : base(settings, owner)
        {
            area_settings  = settings;
            this.all_areas = all_areas;

            percent_button = new CustomTextAnnotation()
            {
                Background              = OxyColors.Transparent,
                Stroke                  = OxyColor.Parse("#FF5500"),
                StrokeThickness         = 1,
                Text                    = "%",
                TextVerticalAlignment   = VerticalAlignment.Bottom,
                TextHorizontalAlignment = HorizontalAlignment.Left,
                Layer                   = AnnotationLayer.AboveSeries,
                Padding                 = new OxyThickness(3, 0, 3, 1),
            };

            menu_button = new CustomTextAnnotation()
            {
                Background              = OxyColors.Transparent,
                Stroke                  = OxyColor.Parse("#FF5500"),
                StrokeThickness         = 1,
                Text                    = "MENU",
                TextVerticalAlignment   = VerticalAlignment.Bottom,
                TextHorizontalAlignment = HorizontalAlignment.Left,
                Layer                   = AnnotationLayer.AboveSeries,
                Padding                 = new OxyThickness(3, 0, 3, 1),
            };


            if (owner.start_program == StartProgram.IsTester)
            {
                speed_lable = new CustomTextAnnotation()
                {
                    Background              = OxyColors.Transparent,
                    Stroke                  = OxyColors.Transparent,
                    StrokeThickness         = 0,
                    Text                    = "Speed: ",
                    TextPosition            = new ScreenPoint(20, 12),
                    TextVerticalAlignment   = VerticalAlignment.Bottom,
                    TextHorizontalAlignment = HorizontalAlignment.Left,
                    Layer                   = AnnotationLayer.AboveSeries,
                };

                minus_button = new CustomTextAnnotation()
                {
                    Background              = OxyColors.Transparent,
                    Stroke                  = OxyColor.Parse("#FF5500"),
                    StrokeThickness         = 1,
                    Text                    = "-",
                    TextPosition            = new ScreenPoint(65, 12),
                    TextVerticalAlignment   = VerticalAlignment.Bottom,
                    TextHorizontalAlignment = HorizontalAlignment.Left,
                    Layer                   = AnnotationLayer.AboveSeries,
                    Padding                 = new OxyThickness(4.5, -1, 4.5, 1),
                };

                plus_button = new CustomTextAnnotation()
                {
                    Background              = OxyColors.Transparent,
                    Stroke                  = OxyColor.Parse("#FF5500"),
                    StrokeThickness         = 1,
                    Text                    = "+",
                    TextPosition            = new ScreenPoint(80, 12),
                    TextVerticalAlignment   = VerticalAlignment.Bottom,
                    TextHorizontalAlignment = HorizontalAlignment.Left,
                    Layer                   = AnnotationLayer.AboveSeries,
                    Padding                 = new OxyThickness(3, -1, 2.5, 1),
                };

                speed_state_lable = new CustomTextAnnotation()
                {
                    Background              = OxyColors.Transparent,
                    Stroke                  = OxyColors.Transparent,
                    StrokeThickness         = 0,
                    Text                    = "x1",
                    TextPosition            = new ScreenPoint(100, 12),
                    TextVerticalAlignment   = VerticalAlignment.Bottom,
                    TextHorizontalAlignment = HorizontalAlignment.Left,
                    Layer                   = AnnotationLayer.AboveSeries,
                };
            }

            plot_model.Annotations.Add(percent_button);
            plot_model.Annotations.Add(menu_button);


            if (owner.start_program == StartProgram.IsTester)
            {
                plot_model.Annotations.Add(speed_lable);
                plot_model.Annotations.Add(minus_button);
                plot_model.Annotations.Add(plus_button);
                plot_model.Annotations.Add(speed_state_lable);

                minus_button.MouseDown += Minus_button_MouseDown;
                minus_button.MouseUp   += Minus_button_MouseUp;

                plus_button.MouseDown += Plus_button_MouseDown;
                plus_button.MouseUp   += Plus_button_MouseUp;
            }

            percent_button.MouseDown += Percent_button_MouseDown;
            menu_button.MouseDown    += Menu_button_MouseDown;
            menu_button.MouseUp      += Menu_button_MouseUp;

            plot_model.Updated   += Plot_model_Updated;
            plot_model.MouseDown += Plot_model_MouseDown;
        }