Метки осей с нерегулярными интервалами - таблица инструментария wpf
Я использую wpf toolkit для управления диаграммой. Используя серию Area, чтобы нарисовать диаграмму. Я хочу показать только пользовательские метки интервалов на оси X. Они не вписываются ни в какую серию или интервал. Пожалуйста, смотрите изображение. Как показано на рисунке, я хочу показать только 1,9,13,20,26,35 отметок по оси X.
Любая идея будет оценена о том, как это может быть достигнуто.
1 ответ
Наконец, методом проб и ошибок я смог найти решение. Я переопределил метод GetLabelValues класса LinearAxis и передал ему список допустимых отметок. Смотрите код ниже.
public class EquiDistanceAxis : LinearAxis
{
List<int> validValues;
public List<int> ValidValues
{
get { return validValues; }
}
public EquiDistanceAxis()
: base()
{
throw new Exception("Not Implemented.");
}
public EquiDistanceAxis(List<int> input)
: base()
{
validValues = input;
}
protected override IEnumerable<IComparable> GetLabelValues(Size availableSize)
{
IEnumerable<IComparable> tickMarkEnumerator = base.GetLabelValues(availableSize);
var enumerator = tickMarkEnumerator.GetEnumerator();
while (enumerator.MoveNext())
{
int day = Convert.ToInt32(enumerator.Current);
if (validValues.Any(v => v == day))
yield return day;
}
}
}