Метки осей с нерегулярными интервалами - таблица инструментария 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;
        }

    }


}
Другие вопросы по тегам