public ScrollBarArea(OxyAreaSettings settings, List <OxyArea> all_areas, OxyChartPainter owner) : base(settings, owner) { area_settings = settings; this.all_areas = all_areas; plot_view.DefaultTrackerTemplate = new System.Windows.Controls.ControlTemplate(); screen_viewer_polygon = new PolygonAnnotation() { Layer = AnnotationLayer.AboveSeries, Selectable = true, Fill = area_settings.ScrollBarColor, EdgeRenderingMode = EdgeRenderingMode.PreferSpeed, Tag = "screen_viewer_polygon", }; screen_viewer_polygon.Points.AddRange(new List <OxyPlot.DataPoint>() { new OxyPlot.DataPoint(0, 0), new OxyPlot.DataPoint(0, 0), new OxyPlot.DataPoint(0, 0), new OxyPlot.DataPoint(0, 0), }); plot_model.MouseDown += Plot_model_scroll_chart_MouseDown; plot_model.MouseUp += Plot_model_scroll_chart_MouseUp; plot_model.MouseLeave += Plot_model_scroll_chart_MouseLeave; plot_model.MouseMove += Plot_model_scroll_chart_MouseMove; plot_model.Updated += Plot_model_Updated; }
public IndicatorArea(OxyAreaSettings settings, List <OxyArea> all_areas, object tag, OxyChartPainter owner) : base(settings, owner) { area_settings = settings; this.all_areas = all_areas; Tag = tag; date_time_axis_X.IsAxisVisible = area_settings.X_Axies_is_visible; date_time_axis_X.IsPanEnabled = false; linear_axis_Y.IsAxisVisible = area_settings.Y_Axies_is_visible; linear_axis_Y.IsPanEnabled = false; plot_model.Updated += Plot_model_Updated; }
public CandleStickArea(OxyAreaSettings settings, List <OxyArea> all_areas, OxyChartPainter owner) : base(settings, owner) { area_settings = settings; this.all_areas = all_areas; date_time_axis_X.MinimumMargin = 25; date_time_axis_X.MaximumMargin = 25; var assembly = this.GetType().GetTypeInfo().Assembly; using (var stream = assembly.GetManifestResourceStream("OsEngine.Resources.OsEngine_logo_transpared.png")) { image = new OxyImage(stream); } plot_model.Annotations.Add(new ImageAnnotation { ImageSource = image, Opacity = 1, Interpolate = false, X = new PlotLength(0.5, PlotLengthUnit.RelativeToPlotArea), Y = new PlotLength(0.5, PlotLengthUnit.RelativeToPlotArea), Width = new PlotLength(0.5, PlotLengthUnit.RelativeToPlotArea), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Middle, Layer = AnnotationLayer.BelowSeries }); candle_stick_seria = new CandleStickSeries() { IncreasingColor = OxyColor.FromArgb(255, 55, 219, 186), DecreasingColor = OxyColor.FromArgb(255, 235, 96, 47), EdgeRenderingMode = EdgeRenderingMode.PreferSpeed }; plot_view.LayoutUpdated += Plot_view_LayoutUpdated; plot_view.MouseLeave += Plot_view_main_chart_MouseLeave; plot_view.MouseMove += Plot_view_main_chart_MouseMove; plot_view.MouseWheel += Plot_view_main_chart_MouseWheel; plot_model.Updated += Plot_model_Updated; plot_model.MouseDown += Plot_model_MouseDown; plot_model.MouseUp += Plot_model_MouseUp; }
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; }
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; }