Beispiel #1
0
        private RotatableControl CreateTickMark(bool major)
        {
            RotatableControl result   = new RotatableControl();
            TickMark         tickMark = new TickMark();

            tickMark.SetBinding(FrameworkElement.StyleProperty, (BindingBase) new Binding(major ? "MajorTickMarkStyle" : "MinorTickMarkStyle")
            {
                Source = (object)this.Axis
            });
            result.Child              = (FrameworkElement)tickMark;
            tickMark.PositionChanged += (EventHandler)((s, e) =>
            {
                this.PrepareTickMark(result);
                XYAxisElementsPanel.SetPosition((UIElement)result, ((TickMark)s).Position);
            });
            return(result);
        }
Beispiel #2
0
        private void PrepareTickMark(RotatableControl item)
        {
            double num = 0.0;

            switch (this.Orientation)
            {
            case Orientation.Horizontal:
                num = this.IsInverted ? 180.0 : 0.0;
                break;

            case Orientation.Vertical:
                num = this.IsInverted ? 90.0 : -90.0;
                break;
            }
            if (((TickMark)item.Child).Position == AxisElementPosition.Inside)
            {
                num += 180.0;
            }
            if (item.RotationAngle == num)
            {
                return;
            }
            item.RotationAngle = num;
        }
Beispiel #3
0
 protected override void Populate(double availableLength)
 {
     this._majorTickMarkPool.ReleaseAll();
     this._minorTickMarkPool.ReleaseAll();
     if (this.Presenter.IsMinorTickMarksVisible)
     {
         this._majorTickMarkPool.AdjustPoolSize();
     }
     try
     {
         this.PrepareAxisLine();
         this.PrepareScrollBar();
         if (!this.Axis.ShowMajorTickMarks && !this.Presenter.IsMinorTickMarksVisible)
         {
             return;
         }
         foreach (ScaleElementDefinition elementDefinition in (IEnumerable <ScaleElementDefinition>) new List <ScaleElementDefinition>((IEnumerable <ScaleElementDefinition>)Enumerable.OrderBy <ScaleElementDefinition, int>(Enumerable.Where <ScaleElementDefinition>(this.Presenter.GetScaleElements(), (Func <ScaleElementDefinition, bool>)(p => p.Kind == ScaleElementKind.Tickmark)), (Func <ScaleElementDefinition, int>)(p => p.Group != ScaleElementGroup.Major ? 0 : 1))))
         {
             if (elementDefinition.Group == ScaleElementGroup.Major && this.Axis.ShowMajorTickMarks && !this.LabelsUseCategoryTickmarks)
             {
                 EnumerableFunctions.ForEachWithIndex <ScalePosition>(Enumerable.Where <ScalePosition>(elementDefinition.Positions, (Func <ScalePosition, bool>)(p =>
                 {
                     if (p.Position >= 0.0)
                     {
                         return(p.Position <= 1.0);
                     }
                     return(false);
                 })), (Action <ScalePosition, int>)((position, index) =>
                 {
                     RotatableControl rotatableControl = this._majorTickMarkPool.Get(this.Axis);
                     XYAxisElementsPanel.SetCoordinate((UIElement)rotatableControl, position.Position);
                     XYAxisElementsPanel.SetPosition((UIElement)rotatableControl, ((TickMark)rotatableControl.Child).Position);
                 }));
             }
             if (elementDefinition.Group == ScaleElementGroup.Minor && this.Presenter.IsMinorTickMarksVisible)
             {
                 EnumerableFunctions.ForEachWithIndex <ScalePosition>(Enumerable.Where <ScalePosition>(elementDefinition.Positions, (Func <ScalePosition, bool>)(p =>
                 {
                     if (DoubleHelper.GreaterOrEqualWithPrecision(p.Position, 0.0))
                     {
                         return(DoubleHelper.LessOrEqualWithPrecision(p.Position, 1.0));
                     }
                     return(false);
                 })), (Action <ScalePosition, int>)((position, index) =>
                 {
                     RotatableControl rotatableControl = this._minorTickMarkPool.Get(this.Axis);
                     XYAxisElementsPanel.SetCoordinate((UIElement)rotatableControl, position.Position);
                     XYAxisElementsPanel.SetPosition((UIElement)rotatableControl, ((TickMark)rotatableControl.Child).Position);
                 }));
             }
         }
     }
     finally
     {
         if (!this.Presenter.IsMinorTickMarksVisible)
         {
             this._majorTickMarkPool.AdjustPoolSize();
         }
         this._minorTickMarkPool.AdjustPoolSize();
     }
 }
Beispiel #4
0
 public override void OnApplyTemplate()
 {
     base.OnApplyTemplate();
     this._rotatableControl = this.GetTemplateChild("RotatableControl") as RotatableControl;
     this.UpdateActualContent();
 }