Axis TextFormatting
All Axis obey standard .NET Formatting strings via the AxisCore.TextFormatting property.
e.g. some examples include:
Axis TextFormatting |
Copy Code |
---|---|
<DateTimeAxis TextFormatting="dd-MMM-yyyy" SubDayTextFormatting="HH:mm:ss"/> <TimeSpanAxis TextFormatting="HH:mm:ss"/> <NumericAxis TextFormatting="0.000###"/> <NumericAxis TextFormatting="n2"/> <NumericAxis TextFormatting="n4"/> <NumericAxis TextFormatting="E"/> <NumericAxis TextFormatting="$0.00"/> |
For a full list of standard .NET Formatting strings take a look at the pages
- https://msdn.microsoft.com/en-us/library/dwhawy9k%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
- https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
Axis CursorTextFormatting
The AxisCore.CursorTextFormatting property defines how text is formatted for cursor labels. To change the CursorTextFormatting, use a standard .NET Formatting string as follows:
Axis CursorTextFormatting |
Copy Code |
---|---|
<DateTimeAxis CursorTextFormatting="dd-MMM-yyyy" /> <TimeSpanAxis CursorTextFormatting="HH:mm:ss"/> <NumericAxis CursorTextFormatting="0.000###"/> <NumericAxis CursorTextFormatting="n2"/> <NumericAxis CursorTextFormatting="n4"/> <NumericAxis CursorTextFormatting="E"/> <NumericAxis CursorTextFormatting="$0.00"/> |
NOTE: You can also have full control over TextFormatting with the LabelProvider API
Dynamically Changing TextFormatting
The DateTimeAxis and CategoryDateTimeAxis types have TextFormatting and SubDayTextFormatting properties. These are designed to show an alternative TextFormatting when the range of the axis is less than one day.
If you require finer grained control over the Axis TextFormatting, say, as you zoom, you can subscribe to Axis.VisibleRangeChanged and dynamically change the TextFormatting.
e.g.
Dynamically Changing TextFormatting |
Copy Code |
---|---|
var axis = new NumericAxis(); axis.VisibleRangeChanged += (s, e) => { if (!e.IsAnimating) { if ((newRange.Max - newRange.Min) < 0.001) ((AxisBase)s).TextFormatting = "E"; else if ((newRange.Max - newRange.Min) < 1.0) ((AxisBase)s).TextFormatting = "0.000"; else ((AxisBase)s).TextFormatting = "0"; } }; |
NOTE: You can also have full control over TextFormatting with the LabelProvider API