/// <summary>
        /// Aligns the label to the right.
        /// </summary>
        /// <param name="chart">The bar chart.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart RightAlignLabel(this BarChart chart)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.LabelAlignment = Justify.Right;
            return(chart);
        }
        /// <summary>
        /// Sets whether or not values should be shown
        /// next to each bar.
        /// </summary>
        /// <param name="chart">The bar chart.</param>
        /// <param name="show">Whether or not values should be shown next to each bar.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart ShowValues(this BarChart chart, bool show)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.ShowValues = show;
            return(chart);
        }
        /// <summary>
        /// Adds an item to the bar chart.
        /// </summary>
        /// <param name="chart">The bar chart.</param>
        /// <param name="label">The item label.</param>
        /// <param name="value">The item value.</param>
        /// <param name="color">The item color.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart AddItem(this BarChart chart, string label, double value, Color?color = null)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.Data.Add(new BarChartItem(label, value, color));
            return(chart);
        }
        /// <summary>
        /// Sets the label of the bar chart.
        /// </summary>
        /// <param name="chart">The bar chart.</param>
        /// <param name="label">The bar chart label.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart Label(this BarChart chart, string?label)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.Label = label;
            return(chart);
        }
        /// <summary>
        /// Sets the width of the bar chart.
        /// </summary>
        /// <param name="chart">The bar chart.</param>
        /// <param name="width">The bar chart width.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart Width(this BarChart chart, int?width)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.Width = width;
            return(chart);
        }
示例#6
0
        /// <summary>
        /// Sets the max fixed value for the chart.
        /// </summary>
        /// <param name="chart">The bar chart.</param>
        /// <param name="maxValue">Max value for the chart.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart WithMaxValue(this BarChart chart, double maxValue)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.MaxValue = maxValue;
            return(chart);
        }
        /// <summary>
        /// Adds an item to the bar chart.
        /// </summary>
        /// <typeparam name="T">A type that implements <see cref="IBarChartItem"/>.</typeparam>
        /// <param name="chart">The bar chart.</param>
        /// <param name="item">The item.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart AddItem <T>(this BarChart chart, T item)
            where T : IBarChartItem
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            chart.Data.Add(new BarChartItem(
                               item.Label,
                               item.Value,
                               item.Color));

            return(chart);
        }
        /// <summary>
        /// Adds multiple items to the bar chart.
        /// </summary>
        /// <typeparam name="T">A type that implements <see cref="IBarChartItem"/>.</typeparam>
        /// <param name="chart">The bar chart.</param>
        /// <param name="items">The items.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart AddItems <T>(this BarChart chart, IEnumerable <T> items)
            where T : IBarChartItem
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            if (items is null)
            {
                throw new ArgumentNullException(nameof(items));
            }

            foreach (var item in items)
            {
                AddItem(chart, item);
            }

            return(chart);
        }
        /// <summary>
        /// Adds multiple items to the bar chart.
        /// </summary>
        /// <typeparam name="T">A type that implements <see cref="IBarChartItem"/>.</typeparam>
        /// <param name="chart">The bar chart.</param>
        /// <param name="items">The items.</param>
        /// <param name="converter">The converter that converts instances of <c>T</c> to <see cref="BarChartItem"/>.</param>
        /// <returns>The same instance so that multiple calls can be chained.</returns>
        public static BarChart AddItems <T>(this BarChart chart, IEnumerable <T> items, Func <T, BarChartItem> converter)
        {
            if (chart is null)
            {
                throw new ArgumentNullException(nameof(chart));
            }

            if (items is null)
            {
                throw new ArgumentNullException(nameof(items));
            }

            if (converter is null)
            {
                throw new ArgumentNullException(nameof(converter));
            }

            foreach (var item in items)
            {
                chart.Data.Add(converter(item));
            }

            return(chart);
        }
 /// <summary>
 /// Hides values next to each bar in the bar chart.
 /// </summary>
 /// <param name="chart">The bar chart.</param>
 /// <returns>The same instance so that multiple calls can be chained.</returns>
 public static BarChart HideValues(this BarChart chart)
 {
     return(ShowValues(chart, false));
 }
 /// <summary>
 /// Shows values next to each bar in the bar chart.
 /// </summary>
 /// <param name="chart">The bar chart.</param>
 /// <returns>The same instance so that multiple calls can be chained.</returns>
 public static BarChart ShowValues(this BarChart chart)
 {
     return(ShowValues(chart, true));
 }