Skip to main content
All docs
V26.1
  • IAxisLabelFormatter Interface

    If implemented by a class, provides a method required for a chart control to format axis labels.

    Namespace: DevExpress.Xpf.Charts

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

    NuGet Package: DevExpress.Wpf.Charts

    Declaration

    public interface IAxisLabelFormatter :
        IAxisLabelFormatterCore

    The following members return IAxisLabelFormatter objects:

    Example

    Perform the steps below to create a formatter:

    • Create a class that implements the IAxisLabelFormatter interface and uses the interface’s GetAxisLabelText method.
    • Assign the newly created class’s instance to the AxisLabel.Formatter property.

    How to: Format Numeric Axis Labels

    This example applies a custom format to the numeric axis’s labels.

    Markup:

    <dxc:XYDiagram2D.AxisX>
        <dxc:AxisX2D>
            <dxc:AxisX2D.Label>
                <dxc:AxisLabel>
                    <dxc:AxisLabel.Formatter>
                        <local:AxisLabelFormatter/>
                    </dxc:AxisLabel.Formatter>
                </dxc:AxisLabel>
            </dxc:AxisX2D.Label>
        </dxc:AxisX2D>
    </dxc:XYDiagram2D.AxisX>
    <dxc:XYDiagram2D.AxisY>
        <dxc:AxisY2D>
                <dxc:AxisLabel>
                    <dxc:AxisLabel.Formatter>
                        <local:AxisLabelFormatter/>
                    </dxc:AxisLabel.Formatter>
                </dxc:AxisLabel>
            </dxc:AxisY2D.Label>
        </dxc:AxisY2D>
    </dxc:XYDiagram2D.AxisY>
    

    Code-Behind:

    public class AxisLabelFormatter : IAxisLabelFormatter {
        public string GetAxisLabelText(object axisValue) {
            return Convert.ToString((double)axisValue / 1000);
        }
    }
    

    How to: Format Date-Time Axis Labels

    This example formats date-time axis labels as follows:

    Markup:

    <dxc:XYDiagram2D.AxisX>
        <dxc:AxisX2D>
            <dxc:AxisX2D.DateTimeScaleOptions>
                <dxc:ManualDateTimeScaleOptions AutoGrid="False" 
                                                GridAlignment="Day" 
                                                GridSpacing="7"/>
            </dxc:AxisX2D.DateTimeScaleOptions>
            <dxc:AxisX2D.Label>
                <dxc:AxisLabel>
                    <dxc:Axis2D.ResolveOverlappingOptions>
                        <dxc:AxisLabelResolveOverlappingOptions AllowHide="False"/>
                    </dxc:Axis2D.ResolveOverlappingOptions>
                    <dxc:AxisLabel.Formatter>
                        <local:AxisLabelFormatter/>
                    </dxc:AxisLabel.Formatter>
                </dxc:AxisLabel>
            </dxc:AxisX2D.Label>
        </dxc:AxisX2D>
    </dxc:XYDiagram2D.AxisX>
    

    Code-Behind:

    public class AxisLabelFormatter : IAxisLabelFormatter {
        public string GetAxisLabelText(object axisValue) {
            DateTime value = (DateTime)axisValue;
            return ((value.Day >= 1) && (value.Day <= 7)) ? $"{value.ToString("MMM, d")}" : $"{value.Day}";
        }
    }
    
    See Also