Проблема довольно проста, но лучше всего иллюстрируется визуально. Обратите внимание, что все снимки экрана взяты из области дизайна Visual Studio 2005. Я не заметил никакой разницы, когда я действительно запускаю приложение.
Вот мой пользовательский элемент управления (назовем это UC-1):
Кнопки на элементе управления установлены на привязку к нижнему + правому.
Вот как это выглядит при помещении на определенный родительский пользовательский элемент управления (UC-A):
Пожалуйста, не обращайте внимания на разницу в цветах и тому подобное. Некоторая стилизация выполняется в конструкторе пользовательского элемента управления.
Обратите внимание, что нижняя часть элемента управления обрезается. Экземпляр использованного элемента управления на родительском элементе установлен с границей «FixedSingle». Обратите также внимание на то, что использованный элемент управления выше оригинала, что указывает на то, что настройки нижнего якоря кнопок соблюдаются, но, по сути, выходят за пределы допустимого значения.
Чтобы подтвердить, что это определенно проблема в родительском элементе управления, обратите внимание на другой пользовательский элемент управления (UC-2), содержащий представление таблицы данных при размещении на том же родительском элементе:
Опять же, экземпляр использованного элемента управления установлен с рамкой «FixedSingle», которая помогает проиллюстрировать отсечение. Сетка данных правильно привязана к нижнему правому краю. Чтобы усилить недоумение этой проблемы, вот первый пользовательский элемент управления (UC-1) при размещении на другом родительском пользовательском элементе управления (UC-B):
альтернативный текст http://i38.tinypic.com/2rnyjd0.png
Вот второй «потребляемый» элемент управления (UC-2) при использовании формой:
Обратите внимание, на этот раз вырезать не нужно.
Я потратил много часов на поиски и эксперименты, чтобы решить эту проблему. Я исчерпал различные настройки полей, отступов, размеров (мин. / Макс.), Местоположений, якорей ... и т. Д. Не могу понять, почему этот один пользовательский элемент управления приводит к тому, что дочерние пользовательские элементы управления обрезаются таким образом .
Еще одна странная вещь, которую я заметил, заключалась в том, что когда я выполняю UNDO на родительской пользовательской панели разработки элементов управления (где элементы управления работают неправильно), отсеченные экземпляры пользовательских элементов управления фактически меняют местоположение, даже если действие отмены не связано с этими элементами управления. Например, если я сделаю основной содержащий элемент управления больше, то отменим, пара дочерних пользовательских элементов управления подпрыгнет. Они, кажется, двигаются настолько далеко, насколько их обрезают. Очень подозрительно.
Кто-нибудь знает, что происходит ??