Example #1
0
        double UpdateSegment(double start, double end, RulerSegment rulerSegment, double run, ref double trans)
        {
            double segmentWidth = _segmentWidth;

            if (run == start)
            {
                rulerSegment.StartValue = (Math.Floor((double)(start / segmentWidth)) * segmentWidth) / Scale;
                run = rulerSegment.StartValue * Scale;
            }
            else if (run <= end)
            {
                rulerSegment.StartValue = run / Scale;
            }
            rulerSegment.SegmentWidth = segmentWidth;
            if (Orientation == Orientation.Horizontal)
            {
                rulerSegment._mTranslateTransform.X = trans;
            }
            else
            {
                rulerSegment._mTranslateTransform.Y = trans;
            }
            trans += rulerSegment.PxSegmentWidth;
            run   += segmentWidth;
            return(run);
        }
Example #2
0
        void UpdateSegments(double start, double end)
        {
            double run   = start;
            double trans = 0.0;

            foreach (RulerSegment segment in _canvas.Children)
            {
                run = UpdateSegment(start, end, segment, run, ref trans);
            }
            while (run < end)
            {
                RulerSegment newSegment = new RulerSegment();
                newSegment.Ruler = this;
                _canvas.Children.Add(newSegment);
                run = UpdateSegment(start, end, newSegment, run, ref trans);
            }
        }