public void SetMark(int pointIndex, StepLineArea area) { if (_markedArea != area || _markedPoint != pointIndex) { _markedArea = area; } _markedPoint = pointIndex; Redraw(); }
private void DrawMark(WriteableBitmap writeableBitmap, double cx, double cy, double px, double py, StepLineArea area) { int x; int y; switch (area) { case StepLineArea.None: return; case StepLineArea.Horizontal: x = (writeableBitmap.CheckX(GetClientX(px)) + writeableBitmap.CheckX(GetClientX(cx))) / 2; y = writeableBitmap.CheckY(GetClientY(py)); break; case StepLineArea.PointPrev: x = writeableBitmap.CheckX(GetClientX(cx)); y = writeableBitmap.CheckY(GetClientY(py)); break; case StepLineArea.Vertical: x = writeableBitmap.CheckX(GetClientX(cx)); y = (writeableBitmap.CheckY(GetClientY(py)) + writeableBitmap.CheckY(GetClientY(cy))) / 2; break; case StepLineArea.PointCurrent: x = writeableBitmap.CheckX(GetClientX(cx)); y = writeableBitmap.CheckY(GetClientY(cy)); break; default: throw new ArgumentOutOfRangeException("area"); } if (x < 3 || x > writeableBitmap.PixelWidth - 3 || y < 3 || y > writeableBitmap.PixelHeight - 3) { return; } writeableBitmap.FillEllipseCentered(x, y, 3, 3, _intColor); }
public StepLineHitTestResult(bool success, StepLineArea area, int pointIndex) : base(success) { Area = area; PointIndex = pointIndex; }