Express LayoutControl разработчика - очень хороший инструмент, но у него есть пара ошибок.
Сам LayoutControl должен точно изменять размер, закрепленный внутри любого контейнерного элемента управления, такого как форма, пользовательский элемент управления или элемент управления панели. Во многих случаях элемент управления макетом - это одна из первых вещей, которую вы помещаете в свою форму / элемент управления, потому что все остальное входит в него как «макет». Таким образом, вы должны установить для свойства «Dock» элемента управления макетом значение «Fill» или указать желаемый край формы / элемента управления, к которому вы хотите прикрепить его.
Здесь "уловка" заключается в том, что внутренняя логика элемента управления макетом может ограничивать его внешние размеры или любой внутренний элемент, если он способен на это, и элементы макета хотят иметь определенный размер. Это на самом деле проще, чем кажется.
Например, допустим, у вас есть элемент управления надписью внутри элемента управления макетом. По умолчанию элемент управления меткой будет иметь размер, соответствующий ширине его текста. В свою очередь, элемент управления макетом попытается согласовать желаемый размер метки, уменьшив / увеличив размер элемента макета. Таким образом, этот элемент управления надписью может портить размеры элементов управления макета. Я выбрал label в качестве примера, потому что это самый распространенный элемент управления, который портит ваш макет.
Чтобы исправить это, нужно изменить свойство метки «AutoSizeMode» на «вертикальное» (если вы хотите обтекание текстом) или «нет» (если вы хотите, чтобы оно соответствовало размеру, требуемому для элемента управления макетом) , Это освобождает элемент управления макетом для принятия решений по ширине.
Также, если вы разрешаете конечному пользователю изменять размер элемента макета (скажем, с помощью DevExpress 'SplitterControl), макет снова попытается стать его оптимальным размером и не позволит SplitterControl отойти от этого оптимального размера, если другой размеры элементов управления легче изменить (например, сетка, дерево, список и т. д.). В этом случае добавление «EmptySpaceItem» к элементу управления макета позволит ему заполнить любое пустое пространство при изменении размера. Чтобы добавить EmptySpaceItem в макет, щелкните правой кнопкой мыши элемент управления макетом в конструкторе Visual Studio и выберите «Настроить макет». Диалоговое окно настройки будет содержать список элементов, которые можно перетащить в элемент управления макетом, включая EmptySpaceItem.