2010-10-23 2 views
2

У меня есть элемент управления, для которого мне необходимо обеспечить соблюдение определенного Width или Height, в зависимости от свойства, которое называется Orientation, что, очевидно, может быть Vertical или Horizontal.Использовать ширину или высоту управления?

Так что, если Orientation свойство Vertical, то Widthнеобходимовсегда быть 2.
Если Orientation свойство Horizontal, то Heightнеобходимовсегда быть 2.

I пробовали много вещей, включая MaximumSize, но ни один из них, похоже, не работает достаточно хорошо.
В качестве примера ... Однострочный TextBoxMultiline установлен в False.)?

ответ

2

Этих шаги:

  1. Реализовать конструктор для управления путем создания пустого класса, который наследует от ControlDesigner.
  2. В этом классе дизайнера переопределите свойство SelectionRules и верните все правила, которые вы хотите использовать для своего контроля; например, установите левый и правый размер, только если вы хотите запретить вертикальное изменение размера.
  3. Прикрепите дизайнера к вашему контролю, украсив ваш класс управления DesignerAttribute и ссылаясь на ваш класс конструктора в конструкторе атрибута.
+0

Благодарим за ответ. Я проверю это сразу! – Vercas

+0

Большое вам спасибо, это также отвечает на другой вопрос, который я собирался спросить о соблюдении местоположения! Он отлично работает! – Vercas

+0

Добро пожаловать! – CesarGon

0

Это пользовательский элемент управления пользователя? Если это так, вы можете построить эту логику в свойстве Orientation.

Если это настраиваемый элемент управления, вы можете написать свойство Orientation таким образом, чтобы установленный метод проверял значение (которое было бы вертикальным или горизонтальным), а затем спокойно устанавливает ширину/высоту соответственно. В том же методе набора вы также можете обновить два поля bool, например dontLetUserSetWidth и dontLetUserSetHeight, в зависимости от значения.

Оказалось ли, это полезно? Извините, если я не прочитал ваш вопрос правильно!

+0

Нет, я бы упомянул пользовательский контроль вместо управления. Я МОЖЕТ построить логику там, но тогда пользователь сможет изменить размер элемента управления после установки свойства. – Vercas

0

В качестве примера ... однострочный TextBox (С Multiline установлен в значение False.)

Учитывая этот конкретный пример, с многострочного значение ЛОЖЬ, то придется явно обрабатывать многострочного Режим, когда изменяется вертикальная цифра.

+0

Я не понимаю ... Что ты имеешь в виду? – Vercas