Exemple #1
0
        /// <summary>
        /// Get or create a linear numeric axis in the correct dimension.
        /// </summary>
        /// <param name="orientation">Dimension of the axis to create.</param>
        /// <param name="oldAxis">
        /// Old value of the axis in this dimension.
        /// </param>
        /// <returns>New value of the axis in this dimension.</returns>
        private IRangeAxis GetAxis(AxisOrientation orientation, IRangeAxis oldAxis)
        {
            // Check the existing axes for a potential axis
            IRangeAxis axis =
                (from IRangeAxis a in SeriesHost.Axes.OfType<IRangeAxis>()
                 where a.Orientation == orientation
                 select a)
                .FirstOrDefault();

            if (axis == null)
            {
                // Create a new axis if not found
                axis = new LinearAxis
                {
                    Orientation = orientation,
                };
            }

            if (oldAxis != axis)
            {
                // Unregister any existing axis
                if (oldAxis != null)
                {
                    SeriesHost.UnregisterWithAxis(this, oldAxis);
                    oldAxis.Invalidated -= OnAxisInvalidated;
                }

                // Register the new axis
                SeriesHost.RegisterWithAxis(this, axis);
                axis.Invalidated += OnAxisInvalidated;
            }

            return axis;
        }
 /// <summary>
 /// Generates value/value Series samples.
 /// </summary>
 /// <param name="panel">Panel to add the generated Charts to.</param>
 /// <param name="seriesConstructor">Function that returns a Series instance for each sample.</param>
 public static void GenerateDateTimeValueSeriesSamples(Panel panel, Func<Series> seriesConstructor)
 {
     Scenario[] scenarios = new Scenario[]
     {
         new Scenario { Title = "Value by Date", ItemsSource = _dynamicDateItemsSource, DependentValueBinding = new Binding("Second"), IndependentValueBinding = new Binding("First") },
     };
     Action<Chart> chartModifier = (chart) =>
     {
         IAxis dateAxis = new DateTimeAxis { Orientation = AxisOrientation.Horizontal };
         chart.Axes.Add(dateAxis);
         IAxis valueAxis = new LinearAxis { Orientation = AxisOrientation.Vertical, Minimum = 0, Maximum = 20, ShowGridLines = true };
         chart.Axes.Add(valueAxis);
     };
     GenerateSeriesSamples(panel, seriesConstructor, scenarios, chartModifier);
 }