Как изменить размеры элементов управления DevExpress - PullRequest
8 голосов
/ 21 сентября 2011

У меня есть DevExpress LayoutControl, установленный внутри формы WinForms.Я бы хотел, чтобы LayoutControl изменил размер horizontally при изменении размера формы или, по крайней мере, сделал LayoutControl изменяемым пользователем.

Я видел на странице DevExpress предложения об изменении свойства SizeConstraintsType на "default".Я также попытался закрепить элемент управления справа и слева от его родителя.Я также работал над увеличением MaxSize.Кто-нибудь знает, как это сделать?

Я просто в принципе хочу сделать эквивалент (в HTML) <table width=100%>.Кто-нибудь знает, как это сделать?

Заранее спасибо!

1 Ответ

13 голосов
/ 20 октября 2011

Express LayoutControl разработчика - очень хороший инструмент, но у него есть пара ошибок.

Сам LayoutControl должен точно изменять размер, закрепленный внутри любого контейнерного элемента управления, такого как форма, пользовательский элемент управления или элемент управления панели. Во многих случаях элемент управления макетом - это одна из первых вещей, которую вы помещаете в свою форму / элемент управления, потому что все остальное входит в него как «макет». Таким образом, вы должны установить для свойства «Dock» элемента управления макетом значение «Fill» или указать желаемый край формы / элемента управления, к которому вы хотите прикрепить его.

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

Например, допустим, у вас есть элемент управления надписью внутри элемента управления макетом. По умолчанию элемент управления меткой будет иметь размер, соответствующий ширине его текста. В свою очередь, элемент управления макетом попытается согласовать желаемый размер метки, уменьшив / увеличив размер элемента макета. Таким образом, этот элемент управления надписью может портить размеры элементов управления макета. Я выбрал label в качестве примера, потому что это самый распространенный элемент управления, который портит ваш макет.

Чтобы исправить это, нужно изменить свойство метки «AutoSizeMode» на «вертикальное» (если вы хотите обтекание текстом) или «нет» (если вы хотите, чтобы оно соответствовало размеру, требуемому для элемента управления макетом) , Это освобождает элемент управления макетом для принятия решений по ширине.

Также, если вы разрешаете конечному пользователю изменять размер элемента макета (скажем, с помощью DevExpress 'SplitterControl), макет снова попытается стать его оптимальным размером и не позволит SplitterControl отойти от этого оптимального размера, если другой размеры элементов управления легче изменить (например, сетка, дерево, список и т. д.). В этом случае добавление «EmptySpaceItem» к элементу управления макета позволит ему заполнить любое пустое пространство при изменении размера. Чтобы добавить EmptySpaceItem в макет, щелкните правой кнопкой мыши элемент управления макетом в конструкторе Visual Studio и выберите «Настроить макет». Диалоговое окно настройки будет содержать список элементов, которые можно перетащить в элемент управления макетом, включая EmptySpaceItem.

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