Ситуация: я делаю складную панель. В моей деловой ситуации мне необходимо, чтобы панель поддерживала следующее:
«Направление» (т. Е. Будет ли оно стыковаться сверху, снизу, слева или справа). Это меняет направление падения и некоторые другие вещи.
«Стиль». Для этого продукта есть несколько предопределенных визуальных стилей (определение цвета фона, градиента или нет, цвета текста, цвета при наведении и т. Д.).
Вот проблема: некоторые стили несовместимы с определенными направлениями. Вот требования:
Должен быть какой-то способ предотвратить / предупредить программиста, если он / она закодировал панель, чтобы иметь несовместимый стиль и направление. Например, если панель выдает исключение времени выполнения, если они несовместимы, это удовлетворяет этому требованию.
Не разрешать кому-либо динамически изменять стиль или направление во время выполнения. Если мне нужно, то я могу позволить «динамически» изменять его в InitializeComponent
, но не где-либо еще.
Панель должна быть видна в режиме конструктора. но не обязательно обязательно , который можно перетаскивать в режиме конструктора, и технически мне даже не нужно изменять атрибуты панели в режиме конструктора. Хотя я, очевидно, хочу любую из этих вещей, если это возможно.
Одно потенциальное решение: пусть конструктор выберет два входа: направление и стиль. Таким образом, оба изменения рассматриваются как атомарное действие. Если они не будут изменены одновременно, то между изменением направления / стиля и последующим изменением другого панель будет в несогласованном состоянии. Я хочу этого избежать.
Как я могу заставить представление конструктора не использовать конструктор по умолчанию и / или как лучше выполнять требования?
Примечание
Панель - только пример и пример использования, чтобы задать более широкий вопрос. Я хочу, чтобы эта публикация ответила на прямой вопрос о передовых методах получения представления дизайна для удовлетворения моих требований. Если Visual Studio поддерживает внедрение конструктора не по умолчанию в InitializeComponent
, то я хочу знать, как (и любые предупреждения с этим). Если есть лучшие практики, которые соответствуют перечисленным требованиям, я бы тоже хотел это знать.