Я пытаюсь нарисовать график и попал в ловушку проблемы дизайна. В классе Chart я определил форму области для рисования в виде прямоугольника:
class Chart
{
// ...
public Rectangle drawArea;
public void addAxisDesc(AxisDescription desc)
{
// ... add left Y-axis
// set the axis x-starting position to the start point of the drawing area
desc.shape.X = drawArea.X;
}
}
Класс Chart имеет возможность добавить описание оси, форма которой также определяется прямоугольником.
Теперь моя цель - сохранить значения в desc.shape.X и drawArea.X одинаковыми. Так что если drawArea.X изменится, desc.shape.X также следует изменить.
У меня было несколько идей, как решить эту проблему, но ни одна из них не показалась мне действительно полезной:
- Зарегистрировать обработчик событий и изменить значение оси, если значение drawArea изменяется
- Установить все позиции относительно родительского элемента и получить абсолютную позицию только во время рендеринга
Кто-нибудь знает, как решить эту проблему или, возможно, как вообще можно избежать этой проблемы?