Принудительно контролировать ширину или высоту? - PullRequest
2 голосов
/ 23 октября 2010

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

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

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

Ответы [ 3 ]

2 голосов
/ 23 октября 2010

Это следующие шаги:

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

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

Учитывая этот конкретный пример, когда для мультилинии задано значение false, вам придется явно обрабатывать многострочный режим при изменении значения по вертикали.

0 голосов
/ 23 октября 2010

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

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

Это выглядит полезным?Извините, если я не правильно прочитал ваш вопрос!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...