using Microsoft.VisualBasic.CompilerServices; using MuchInfo.Chart.Data.EnumTypes; using MuchInfo.Chart.Infrastructure.Helpers; using MuchInfo.Chart.WPF.Controls.Drawing; using System; using System.Collections.Generic; using System.Windows; using System.Windows.Media; using MuchInfo.Chart.WPF.Primitives.Interfaces; using MuchInfo.Chart.WPF.Helpers; namespace MuchInfo.Chart.WPF.Primitives.Drawing { public class DrawingQuadrantLines : Drawing2PointLinkedBase { private ExtendableLine drawingQuadrantLines_1059; private float drawingQuadrantLines_1060; private float drawingQuadrantLines_1061; public DrawingQuadrantLines() { this.drawingQuadrantLines_1060 = 0f; this.drawingQuadrantLines_1061 = 0f; } public override DrawingToolType ToolType() { return DrawingToolType.QuadLines; } public override bool CanPlotOnAllSymbols() { return true; } public override IDrawingTool Clone() { return new DrawingQuadrantLines { mColor = Colors.Cyan }; } protected override List GetDrawingPlots(Chart owner, ScaleLayer aScale, Rect aRect) { List list = new List(); bool flag = this.drawingQuadrantLines_1059 == null; if (flag) { this.drawingQuadrantLines_1059 = new ExtendableLine(this, owner); this.drawingQuadrantLines_1059.Stroke = new SolidColorBrush(this.mColor); this.drawingQuadrantLines_1059.StrokeThickness = 1.4; DoubleCollection doubleCollection = new DoubleCollection(); doubleCollection.Add(10.0); doubleCollection.Add(10.0); this.drawingQuadrantLines_1059.SetMainStrokeDash(doubleCollection); this.drawingQuadrantLines_1059.ChannelStroke = new SolidColorBrush(this.mColor); this.drawingQuadrantLines_1059.ExtensionStroke = this.drawingQuadrantLines_1059.Stroke; } this.MoveDrawingToNewLocations(aRect); list.Add(this.drawingQuadrantLines_1059); return list; } public override string RootName { get { return "drawQUAD"; } } public override string MenuDescription() { return LanguageManager.FindResource(LanguageConst.DrawingTool_Abbreviation_QuadrantLines); } public override string Abbreviation() { return "Quad Line"; } public override string Description() { return this.MenuDescription(); } protected override void ColorChanged() { bool flag = this.drawingQuadrantLines_1059 != null; if (flag) { this.drawingQuadrantLines_1059.Stroke = new SolidColorBrush(this.mColor); this.drawingQuadrantLines_1059.ChannelStroke = new SolidColorBrush(this.mColor); this.drawingQuadrantLines_1059.ExtensionStroke = this.drawingQuadrantLines_1059.Stroke; } } public override void CalculateValues() { this.CalcHighLowForPoints(this.P1Date, this.P2Date, ref this.drawingQuadrantLines_1060, ref this.drawingQuadrantLines_1061); this.mDrawP1.Y = ((double)this.mLastScale.GetmScaler().ScaledY(this.drawingQuadrantLines_1061 + (this.drawingQuadrantLines_1060 - this.drawingQuadrantLines_1061) / 2f, this.mLastRect)); this.mDrawP2.Y = ((double)this.mLastScale.GetmScaler().ScaledY(this.drawingQuadrantLines_1061 + (this.drawingQuadrantLines_1060 - this.drawingQuadrantLines_1061) / 2f, this.mLastRect)); } protected override void MoveDrawingToNewLocations(Rect aRect) { Point p = default(Point); Point p2 = default(Point); bool flag = this.drawingQuadrantLines_1059 != null; if (flag) { Point pointA = new Point(); Point pointB = new Point(); this.drawingQuadrantLines_1059.SetPosition(this.mDrawP1, this.mDrawP2, this.ExtendLeft, this.ExtendRight, aRect); //第一条辅助线 p.X = (this.mDrawP1.X); float num = this.drawingQuadrantLines_1060; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p.Y = ((double)num); p2.X = (this.mDrawP2.X); num = this.drawingQuadrantLines_1060; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p2.Y = ((double)num); PointOfLineAtRectangleCalculator(ref pointA, ref pointB, p, p2, aRect); this.drawingQuadrantLines_1059.SetTopTopPosition(pointA, pointB, this.ExtendLeft, this.ExtendRight, aRect); //第二条辅助线 p.X = (this.mDrawP1.X); num = this.drawingQuadrantLines_1061 + 3f * (this.drawingQuadrantLines_1060 - this.drawingQuadrantLines_1061) / 4f; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p.Y = ((double)num); p2.X = (this.mDrawP2.X); num = this.drawingQuadrantLines_1061 + 3f * (this.drawingQuadrantLines_1060 - this.drawingQuadrantLines_1061) / 4f; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p2.Y = ((double)num); PointOfLineAtRectangleCalculator(ref pointA, ref pointB, p, p2, aRect); this.drawingQuadrantLines_1059.SetTopPosition(pointA, pointB, this.ExtendLeft, this.ExtendRight, aRect); //第三条辅助线 p.X = (this.mDrawP1.X); num = this.drawingQuadrantLines_1061 + 1f * (this.drawingQuadrantLines_1060 - this.drawingQuadrantLines_1061) / 4f; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p.Y = ((double)num); p2.X = (this.mDrawP2.X); num = this.drawingQuadrantLines_1061 + 1f * (this.drawingQuadrantLines_1060 - this.drawingQuadrantLines_1061) / 4f; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p2.Y = ((double)num); PointOfLineAtRectangleCalculator(ref pointA, ref pointB, p, p2, aRect); this.drawingQuadrantLines_1059.SetBotPosition(pointA, pointB, this.ExtendLeft, this.ExtendRight, aRect); //第四条辅助线 p.X = (this.mDrawP1.X); num = this.drawingQuadrantLines_1061; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p.Y = ((double)num); p2.X = (this.mDrawP2.X); num = this.drawingQuadrantLines_1061; num = this.mLastScale.GetmScaler().ScaledY(num, this.mLastRect); p2.Y = ((double)num); PointOfLineAtRectangleCalculator(ref pointA, ref pointB, p, p2, aRect); this.drawingQuadrantLines_1059.SetBotBotPosition(pointA, pointB, this.ExtendLeft, this.ExtendRight, aRect); } } public override ImageSource Icon() { ImageSource result; try { result = ImageHelper.GetImage("QuadLines.png"); } catch (Exception expr_3A) { ProjectData.SetProjectError(expr_3A); result = null; ProjectData.ClearProjectError(); } return result; } protected override bool CanExtendLeft() { return true; } protected override bool CanExtendRight() { return true; } protected override bool AllowExtensionColorEdit() { return false; } } }