Skip to main content
All docs
V25.1
  • ITimeSpanMeasureUnitsCalculator.CalculateMeasureUnit(IEnumerable<Series>, Double, Int32, Double, Double, Double, Double) Method

    Calculates the date-time measurement unit that an axis should use for display.

    Namespace: DevExpress.Xpf.Charts

    Assembly: DevExpress.Xpf.Charts.v25.1.dll

    NuGet Package: DevExpress.Wpf.Charts

    Declaration

    TimeSpanMeasureUnit CalculateMeasureUnit(
        IEnumerable<Series> series,
        double axisLength,
        int pixelsPerUnit,
        double visualMin,
        double visualMax,
        double wholeMin,
        double wholeMax
    )

    Parameters

    Name Type Description
    series IEnumerable<Series>

    All Series associated with the axis.

    axisLength Double

    The length of the axis’s visual range in pixels.

    pixelsPerUnit Int32

    The minimum count of pixels that series require to draw their points correctly.

    visualMin Double

    The visual range’s minimum value in milliseconds.

    visualMax Double

    The visual range’s maximum value in milliseconds.

    wholeMin Double

    The whole range’s minimum value in milliseconds.

    wholeMax Double

    The whole range’s maximum value in milliseconds.

    Returns

    Type Description
    TimeSpanMeasureUnit

    The calculated measurement unit.

    Remarks

    Bars can overlap each other if the calculated measurement unit covers fewer pixels on the axis than the pixelPerUnit parameter specifies.

    Example

    The automatic time-span scale options allow you to create a measurement unit calculator to determine the current measurement unit if the predefined one does not fit your requirements. Create a class that implements the ITimeSpanMeasureUnitsCalculator interface and assign it to the AutomaticMeasureUnitsCalculator property to use a custom measurement units calculation algorithm:

    <Window
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:TimeSpanExample"
            xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts" 
            x:Class="TimeSpanExample.MainWindow"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">
        <Window.DataContext>
            <local:ChartViewModel/>
        </Window.DataContext>
        <Grid>
            <dxc:ChartControl>
                <dxc:XYDiagram2D>
                    <dxc:XYDiagram2D.AxisX>
                        <dxc:AxisX2D>
                            <dxc:AxisX2D.TimeSpanScaleOptions>
                                <dxc:AutomaticTimeSpanScaleOptions AggregateFunction="Average">
                                    <dxc:AutomaticTimeSpanScaleOptions.AutomaticMeasureUnitsCalculator>
                                        <local:CustomAutomaticTimeSpanMeasureUnitsCalculator/>
                                    </dxc:AutomaticTimeSpanScaleOptions.AutomaticMeasureUnitsCalculator>
                                </dxc:AutomaticTimeSpanScaleOptions>
                            </dxc:AxisX2D.TimeSpanScaleOptions>
                        </dxc:AxisX2D>
                    </dxc:XYDiagram2D.AxisX>
                </dxc:XYDiagram2D>
            </dxc:ChartControl>
        </Grid>
    </Window>
    
    See Also