Вручную активировать / деактивировать SnapLines для пользовательских элементов управления - PullRequest
2 голосов
/ 22 апреля 2011

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

Я уже переопределяю свойство SnapLines в своем классе ControlDesigner, чтобы вручную перенаправлять различные линии привязки от дочерних элементов управления моего элемента управления - привязка базовой линии текста (розовая) к меткам и спискам; вставка текста с ярлыков; верхняя, нижняя, левая и правая линии из выпадающих списков. Эти линии привязки активируются, когда сам элемент управления перемещается в форме и когда вокруг него перемещаются другие элементы управления.

Что мне нужно, так это возможность сказать дизайнеру активировать линии привязки, а затем деактивировать их, пока я выполняю внутреннее перемещение или изменяю размер базовых элементов управления.

Размер моих списков можно изменить с помощью переопределений OnMouseDragBegin, OnMouseDragMove и OnMouseDragEnd в моем конструкторе элементов управления. Волшебная пуля, которую я ищу, - это то, что я могу вызвать в Begin, чтобы сказать дизайнеру, чтобы показать линии привязки, и что-то в End, чтобы заставить его остановиться.

Разрешение людям изменять размеры и перемещать внутренние элементы управления во время разработки является бесполезным, если они не отображают привязки друг к другу или для внешних элементов управления.

Как и с такими вещами, поиск невероятно труден. Я нашел одно сообщение на форуме, где кто-то задавал этот точный вопрос, на который (конечно) не было ответов. Вот и все.

Очевидно, что проблема привязки к линиям привязки, когда / если они показаны, остается. Хорошее начало было бы просто увидеть их.

Есть идеи?

1 Ответ

1 голос
/ 29 августа 2011

Лучший способ сделать то, что вы хотите, - это создать Design Surface MSDN Reference

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

Надеюсь, это поможет,

Йохан против Ренсбурга

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