Exemple #1
0
        void AddVerticalDayMarks(GeometryGroup geometryGroup)
        {
            DateTime dtStart             = StartOfScale;
            DateTime dtEnd               = EndOfScale;
            Int64    dtStartTicks        = dtStart.Ticks;
            Int64    dtEndTicks          = dtEnd.Ticks;
            Int32    dtStartNumberOfDays = (Int32)(dtStartTicks / TimeSpan.TicksPerDay);
            Int32    dtEndNumberOfDays   = (Int32)(dtEndTicks / TimeSpan.TicksPerDay);

            int numberOfDayMarks = (Int32)(dtEndNumberOfDays - dtStartNumberOfDays);

            DayMarks = new List <Mark>(numberOfDayMarks);


            TransformWorldToScreen.PrepareTransformations(dtStartTicks, dtEndTicks, 0, this.actualHeight, 0, this.actualWidth, this.actualHeight, 0);
            int   dayNumber               = dtEndNumberOfDays;
            Point worldPointOnTheLine     = new Point(0, 0);
            Point worldPointUnderTheLine  = new Point(0, 0);
            Point devicePointOnTheLine    = new Point(0, 0);
            Point devicePointUnderTheLine = new Point(0, 0);

            for (int dayMark = numberOfDayMarks; dayMark > 0; dayMark--)
            {
                worldPointOnTheLine.X    = dayNumber * TimeSpan.TicksPerDay;
                worldPointOnTheLine.Y    = 0;
                worldPointUnderTheLine.X = dayNumber * TimeSpan.TicksPerDay;
                worldPointUnderTheLine.Y = 10;
                devicePointOnTheLine     = TransformWorldToScreen.WtoD(worldPointOnTheLine);
                devicePointUnderTheLine  = TransformWorldToScreen.WtoD(worldPointUnderTheLine);
                geometryGroup.Children.Add(new LineGeometry(devicePointOnTheLine, devicePointUnderTheLine));
                DayMarks.Add(new Mark(devicePointOnTheLine, devicePointUnderTheLine, dayNumber));
                dayNumber--;
            }
        }
Exemple #2
0
        void AddVerticalHourMarks(GeometryGroup geometryGroup)
        {
            DateTime dtStart              = StartOfScale;
            DateTime dtEnd                = EndOfScale;
            Int64    dtStartTicks         = dtStart.Ticks;
            Int64    dtEndTicks           = dtEnd.Ticks;
            Int32    dtStartNumberOfHours = (Int32)(dtStartTicks / TimeSpan.TicksPerHour);
            Int32    dtEndNumberOfHours   = (Int32)(dtEndTicks / TimeSpan.TicksPerHour);

            int numberOfHourMarks = (Int32)(dtEndNumberOfHours - dtStartNumberOfHours);

            HourMarks = new List <Mark>(numberOfHourMarks);


            TransformWorldToScreen.PrepareTransformations(dtStartTicks, dtEndTicks, 0, this.actualHeight, 0, this.actualWidth, this.actualHeight, 0);
            int   hourNumber = dtEndNumberOfHours;
            Point worldPointOnTheLineAtTheStart = new Point(dtStartTicks, 0);
            Point worldPointOnTheLineAtTheEnd   = new Point(dtEndTicks, 0);

            hourMarkDistance = (WtoD(worldPointOnTheLineAtTheEnd).X - WtoD(worldPointOnTheLineAtTheStart).X) / numberOfHourMarks;
            if (hourMarkDistance > MinHourMarksGapSize)
            {
                Point worldPointOnTheLine     = new Point(0, 0);
                Point worldPointUnderTheLine  = new Point(0, 0);
                Point devicePointOnTheLine    = new Point(0, 0);
                Point devicePointUnderTheLine = new Point(0, 0);
                for (int hourMark = numberOfHourMarks; hourMark > 0; hourMark--)
                {
                    worldPointOnTheLine.X    = hourNumber * TimeSpan.TicksPerHour;
                    worldPointOnTheLine.Y    = 0;
                    worldPointUnderTheLine.X = hourNumber * TimeSpan.TicksPerHour;
                    worldPointUnderTheLine.Y = 5;
                    devicePointOnTheLine     = TransformWorldToScreen.WtoD(worldPointOnTheLine);
                    devicePointUnderTheLine  = TransformWorldToScreen.WtoD(worldPointUnderTheLine);
                    geometryGroup.Children.Add(new LineGeometry(devicePointOnTheLine, devicePointUnderTheLine));
                    HourMarks.Add(new Mark(devicePointOnTheLine, devicePointUnderTheLine, hourNumber));
                    hourNumber--;
                }
            }
        }