public CandleShadowGeom(DrawingInfo _drawingInfo, int _offset, double[] sortedVals, bool _first, bool upDir) { drawingInfo = _drawingInfo; GeometryGroup shadowGeom = new GeometryGroup(); shadowGeom.Children.Add(new LineGeometry( new Point(_offset, sortedVals[0]), new Point(_offset, sortedVals[1]))); shadowGeom.Children.Add(new LineGeometry( new Point(_offset, sortedVals[2]), new Point(_offset, sortedVals[3]))); geo.Children.Add(shadowGeom); StrokeThickness = 1; if (_first) { Stroke = Brushes.Red; } else { Stroke = Brushes.Black; } Tag = new CandleTag { first = _first, offset = _offset }; }
public void UpdateLastSDD() { Debug.Assert(canvas != null); Data.SymbolDayData lastSdd = drawingInfo.sddList[0]; int cbgFound = -1; // CandleBodyGeom int csgFound = -1; // CandleShadowGeom CandleTag ct = new CandleTag(); for (int i = 0; i < canvas.Children.Count; i++) { if (canvas.Children[i] is CandleBodyGeom && ((CandleTag)((CandleBodyGeom)canvas.Children[i]).Tag).first) { cbgFound = i; ct = (CandleTag)((CandleBodyGeom)canvas.Children[i]).Tag; canvas.Children.RemoveAt(cbgFound); break; } } for (int i = 0; i < canvas.Children.Count; i++) { if (canvas.Children[i] is CandleShadowGeom && ((CandleTag)((CandleShadowGeom)canvas.Children[i]).Tag).first) { csgFound = i; canvas.Children.RemoveAt(csgFound); break; } } CreateCandle(canvas, ct.offset, lastSdd, ct.first); }
public CandleBodyGeom(DrawingInfo _drawingInfo, int _offset, double[] sortedVals, bool _first, bool upDir) { drawingInfo = _drawingInfo; GeometryGroup bodyGeom = new GeometryGroup(); bodyGeom.Children.Add(new RectangleGeometry(new Rect( new Point(_offset - drawingInfo.candleWidth / 2, sortedVals[1]), new Point(_offset + drawingInfo.candleWidth / 2, sortedVals[2])))); Path bodyPath = new Path(); bodyPath.StrokeThickness = 1; geo.Children.Add(bodyGeom); StrokeThickness = 1; if (_first) { Stroke = Brushes.Red; } else { Stroke = Brushes.Black; } Fill = upDir ? Brushes.White : Brushes.Black; Tag = new CandleTag { first = _first, offset = _offset }; }