コード例 #1
0
        void AddForceTicksToCanvas()
        {
            Canvas canvas = cvsForceTicks;
            double height = canvas.ActualHeight;

            canvas.Children.Clear();
            double maxForce;

            if (Session.StepDiagram != null)
            {
                maxForce = Session.StepDiagram.MaxForce;
            }
            else
            {
                maxForce = 2.5;
            }

            int numSteps = 5;

            if (height < 80)
            {
                numSteps = (int)Math.Floor(height / 20);
            }

            double rawStep    = maxForce / numSteps;
            double tenthPower = 0;

            while (rawStep > 0 && rawStep <= 1.0)
            {
                rawStep = rawStep * 10;
                tenthPower++;
            }
            double step       = Math.Round(rawStep) / Math.Pow(10, tenthPower);
            double upperBound = maxForce + step;

            for (double force = 0; force < upperBound; force += step)
            {
                double y = ConversionHelper.AvailableHeight - ConversionHelper.ForceToPixels(force);
                if (y < 0)
                {
                    continue;
                }

                double lineLeft = 3 * canvas.ActualWidth / 4;
                Line   newLine  = GetForceTickLine(canvas, lineLeft, y);
                canvas.Children.Add(newLine);

                TextBlock label = GetForceTickLabel(force, lineLeft, y);
                canvas.Children.Add(label);
            }

            Line rightEdgeLine = new Line();

            rightEdgeLine.X1 = canvas.ActualWidth;
            rightEdgeLine.X2 = canvas.ActualWidth;
            rightEdgeLine.Y1 = 0;
            rightEdgeLine.Y2 = ConversionHelper.AvailableHeight;
            rightEdgeLine.StrokeThickness = 1;
            rightEdgeLine.Stroke          = Brushes.LightGray;
            canvas.Children.Add(rightEdgeLine);
        }
コード例 #2
0
 public void SetAvailableHeight()
 {
     ConversionHelper.SetAvailableHeight(lstSteps.ActualHeight - SystemParameters.ScrollHeight - GetHorizontalAxisHeight());
     AddForceTicksToCanvas();
 }