На данный момент я почти никогда не хочу снова разрабатывать элемент управления с богатой поддержкой времени разработки. Тем не менее ...
Я уже переопределяю свойство SnapLines
в своем классе ControlDesigner
, чтобы вручную перенаправлять различные линии привязки от дочерних элементов управления моего элемента управления - привязка базовой линии текста (розовая) к меткам и спискам; вставка текста с ярлыков; верхняя, нижняя, левая и правая линии из выпадающих списков. Эти линии привязки активируются, когда сам элемент управления перемещается в форме и когда вокруг него перемещаются другие элементы управления.
Что мне нужно, так это возможность сказать дизайнеру активировать линии привязки, а затем деактивировать их, пока я выполняю внутреннее перемещение или изменяю размер базовых элементов управления.
Размер моих списков можно изменить с помощью переопределений OnMouseDragBegin
, OnMouseDragMove
и OnMouseDragEnd
в моем конструкторе элементов управления. Волшебная пуля, которую я ищу, - это то, что я могу вызвать в Begin, чтобы сказать дизайнеру, чтобы показать линии привязки, и что-то в End, чтобы заставить его остановиться.
Разрешение людям изменять размеры и перемещать внутренние элементы управления во время разработки является бесполезным, если они не отображают привязки друг к другу или для внешних элементов управления.
Как и с такими вещами, поиск невероятно труден. Я нашел одно сообщение на форуме, где кто-то задавал этот точный вопрос, на который (конечно) не было ответов. Вот и все.
Очевидно, что проблема привязки к линиям привязки, когда / если они показаны, остается. Хорошее начало было бы просто увидеть их.
Есть идеи?