ArcGISPortalViewer.Popup.Primitives.Charting.Range.Fraction C# (CSharp) Method

Fraction() public method

public Fraction ( double val ) : double
val double
return double
        public double Fraction(double val)
        {
            return Max == Min ? 0 : (val - Min) / (Max - Min);
        }

Usage Example

        private void GenerateDataPoint(KeyValuePair <string, double> kvp, Range range)
        {
            // Add a row and add a grid in this row
            _series.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            Grid point = new Grid();

            Grid.SetRow(point, _series.RowDefinitions.Count - 1);
            _series.Children.Add(point);

            // Divide the grid in 3 columns
            double val = kvp.Value;
            double negativeFraction = range.Fraction(Math.Min(val, 0));
            double positiveFraction = 1 - range.Fraction(Math.Max(val, 0));

            point.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(negativeFraction, GridUnitType.Star)
            });
            point.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1 - positiveFraction - negativeFraction, GridUnitType.Star), MinWidth = MinBarSize
            });
            point.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(positiveFraction, GridUnitType.Star)
            });

            Border axisY = new Border
            {
                BorderThickness     = new Thickness(0.75),
                BorderBrush         = ForegroundColor,
                Opacity             = 0.5,
                HorizontalAlignment = val > 0.0 ? HorizontalAlignment.Left : HorizontalAlignment.Right,
                VerticalAlignment   = VerticalAlignment.Stretch,
                Margin = new Thickness(0, -5, 0, -5)
            };

            Grid.SetColumn(axisY, 1);
            point.Children.Add(axisY);

            // Put a bar in the middle column
            Border bar = new Border
            {
                Margin     = new Thickness(0, MarginBetweenBars, 0, MarginBetweenBars),
                Background = GetColorByIndex(0)
            };

            Grid.SetColumn(bar, 1);
            SetTooltip(bar, kvp.Key, FormattedValue(kvp.Value));
            point.Children.Add(bar);
        }
All Usage Examples Of ArcGISPortalViewer.Popup.Primitives.Charting.Range::Fraction