예제 #1
0
        private void UpdateAxisSettings()
        {
            NumberOfAxes.IsEnabled = (0 == NumberOfSeries.Value);
            var numberOfAxes = (int)NumberOfAxes.Value;

            for (int i = 0; i < _axisSettingsCollection.Count; i++)
            {
                bool axisInUse = (i < numberOfAxes);
                _axisSettingsCollection[i].Enabled = axisInUse;
                if (null != Chart)
                {
                    DisplayAxis axis = _axisSettingsCollection[i].Axis;
                    if (axisInUse)
                    {
                        if (!Chart.Axes.Contains(axis))
                        {
                            Chart.Axes.Add(axis);
                        }
                    }
                    else
                    {
                        if (Chart.Axes.Contains(axis))
                        {
                            Chart.Axes.Remove(axis);
                        }
                    }
                }
            }
        }
예제 #2
0
 protected override void GetAxes(DataPoint firstDataPoint)
 {
     GetAxes(
         firstDataPoint,
         (axis) => axis.Orientation == AxisOrientation.X,
         () => new CategoryAxis {
         Orientation = AxisOrientation.X
     },
         (axis) =>
     {
         IRangeAxis rangeAxis = axis as IRangeAxis;
         return(rangeAxis != null && rangeAxis.Origin != null && axis.Orientation == AxisOrientation.Y);
     },
         () =>
     {
         IRangeAxis rangeAxis  = CreateRangeAxisFromData(firstDataPoint.DependentValue);
         rangeAxis.Orientation = AxisOrientation.Y;
         if (rangeAxis == null || rangeAxis.Origin == null)
         {
             throw new InvalidOperationException("No Suitable Axis Available For Plotting Dependent Value");
         }
         DisplayAxis axis = rangeAxis as DisplayAxis;
         if (axis != null)
         {
             axis.ShowGridLines = true;
         }
         return(rangeAxis);
     });
 }
예제 #3
0
 /// <summary>
 /// Acquire a horizontal category axis and a vertical linear axis.
 /// </summary>
 /// <param name="firstDataPoint">The first data point.</param>
 protected override void GetAxes(DataPoint firstDataPoint)
 {
     GetAxes(
         firstDataPoint,
         (axis) => axis.Orientation == AxisOrientation.Y,
         () => new CategoryAxis {
         Orientation = AxisOrientation.Y
     },
         (axis) =>
     {
         IRangeAxis rangeAxis = axis as IRangeAxis;
         return(rangeAxis != null && axis.Orientation == AxisOrientation.X);
     },
         () =>
     {
         IRangeAxis rangeAxis  = CreateRangeAxisFromData(firstDataPoint.DependentValue);
         rangeAxis.Orientation = AxisOrientation.X;
         if (rangeAxis == null)
         {
             throw new InvalidOperationException();
         }
         DisplayAxis axis = rangeAxis as DisplayAxis;
         if (axis != null)
         {
             axis.ShowGridLines = true;
         }
         return(rangeAxis);
     });
 }
예제 #4
0
 /// <summary>
 /// Acquire a horizontal category axis and a vertical linear axis.
 /// </summary>
 /// <param name="firstDataPoint">The first data point.</param>
 protected override void GetAxes(DataPoint firstDataPoint)
 {
     GetAxes(
         firstDataPoint,
         (axis) => axis.Orientation == AxisOrientation.X,
         () =>
     {
         ScrollableCategoryAxis categoryAxis = new ScrollableCategoryAxis {
             Orientation = AxisOrientation.X
         };
         categoryAxis.ScrollChanged += ScrollableCategoryAxis_ScrollChanged;
         return(categoryAxis);
     },
         (axis) =>
     {
         IRangeAxis rangeAxis = axis as IRangeAxis;
         return(rangeAxis != null && rangeAxis.Origin != null && axis.Orientation == AxisOrientation.Y);
     },
         () =>
     {
         IRangeAxis rangeAxis  = CreateRangeAxisFromData(firstDataPoint.DependentValue);
         rangeAxis.Orientation = AxisOrientation.Y;
         if (rangeAxis == null || rangeAxis.Origin == null)
         {
             throw new InvalidOperationException("No suitable axis is available for plotting the dependent value.");
         }
         DisplayAxis axis = rangeAxis as DisplayAxis;
         if (axis != null)
         {
             axis.ShowGridLines = true;
         }
         return(rangeAxis);
     });
 }
예제 #5
0
        public virtual void InitialValues()
        {
            DisplayAxis axis = (DisplayAxis)DefaultControlToTest;

            Assert.AreEqual(AxisOrientation.None, axis.Orientation);
            Assert.IsNull(axis.Title);
        }
예제 #6
0
        public static void SetDependentAxis(this DataPointSeries series, DisplayAxis axis)
        {
            SeriesPropertyInformation seriesPropertyInformation = _seriesPropertyInformations[series.GetType()];

            if (null != seriesPropertyInformation.DependentAxisProperty)
            {
                series.SetValue(seriesPropertyInformation.DependentAxisProperty, axis);
            }
        }
예제 #7
0
            /// <summary>
            /// AxisProperty property changed handler.
            /// </summary>
            /// <param name="oldValue">Old value.</param>
            /// <param name="newValue">New value.</param>
            private void OnAxisPropertyChanged(DisplayAxis oldValue, DisplayAxis newValue)
            {
                if (newValue != null)
                {
                    newValue.RegisteredListeners.Add(this);
                }

                if (oldValue != null)
                {
                    oldValue.RegisteredListeners.Remove(this);
                }
            }
예제 #8
0
 /// <summary>
 /// Acquire a horizontal linear axis and a vertical linear axis.
 /// </summary>
 /// <param name="firstPoint">The first point.</param>
 protected override void GetAxes(ChartPoint <TIndependent, TDependent> firstPoint)
 {
     this.GetAxes(
         firstPoint,
         axis => axis.Orientation == AxisOrientation.X,
         () =>
     {
         IAxis axis       = CreateRangeAxisFromType(typeof(TIndependent)) ?? (IAxis) new CategoryAxis();
         axis.Orientation = AxisOrientation.X;
         return(axis);
     },
         axis => axis.Orientation == AxisOrientation.Y && axis is IRangeAxis,
         () =>
     {
         DisplayAxis axis = (DisplayAxis)CreateRangeAxisFromType(typeof(TDependent));
         if (axis == null)
         {
             throw new InvalidOperationException("No suitable axis found");
         }
         axis.ShowGridLines = true;
         axis.Orientation   = AxisOrientation.Y;
         return(axis);
     });
 }
예제 #9
0
 /// <summary>
 /// Instantiates a new instance of the DisplayAxisGridLines class.
 /// </summary>
 /// <param name="axis">The axis used by the DisplayAxisGridLines.</param>
 public ZeroLineCanvas(DisplayAxis axis)
 {
     this.Axis         = axis;
     this.SizeChanged += new SizeChangedEventHandler(OnSizeChanged);
 }