Ответ 1
Проводка в качестве ответа, поскольку длина превышает ограничение длины комментария.
Я отклонил ваш вопрос, потому что он сформулирован с элементами пламени. Я бы предположил, что ваш предыдущий опыт работы с библиотеками GUI был в основном с библиотеками, поддерживающими макеты ящиков, такие как Qt. API Win32 GUI сам по себе не предоставляет примитивов для создания макетов коробки - он использует сквозные координаты. Это остается неизменным во многих библиотеках OO, которые строятся поверх API, таких как MFC. Некоторые библиотеки, такие как VCL, имеют необязательные примитивы для создания макетов (панелей с выравниванием и автоматическим размером), но в конце концов, все репозиционирование управления должно выполняться приложением или графическим интерфейсом, поэтому что-то вроде этого нужно будет быть реализованы в DFL с нуля.
Итак, чтобы ответить на ваши вопросы:
Есть ли какая-либо реализация
TableLayoutPanel
для DFL?
Возможно, нет.
Как люди обычно используют эту библиотеку без нее?
Они рисуют элементы управления в форме с помощью мыши, используя Entice Designer. (То же самое верно для MFC/Visual Studio, VCL/Delphi IDE и т.д.)
Ответить на комментарий:
как мне помещать вещи в макет таблицы (например, два бок о бок и один ниже)?
Я понимаю, что вы хотите иметь панель с фиксированной высотой внизу и разделить оставшееся пространство на две области, которые при изменении формы будут оставаться на половину ширины формы.
- В Entice Designer поместите панель, установите ее
dock
наBOTTOM
. Установите его высоту соответствующим образом. - Поместите вторую панель, установите ее
dock
наRIGHT
. - В вашем коде формы добавьте следующий метод:
protected override void onResize(EventArgs ea)
{
super.onResize(ea);
panel2.width = this.clientRectangle.width / 2;
}
Как вы можете видеть, он может быстро запутаться, чтобы получить более сложный "резиновый стол". Я бы не стал беспокоиться, или, если мне действительно нужны сложные динамические макеты, будет искать другую библиотеку.
Или вы говорите, что плохая идея в первую очередь?
Определенно не моя точка зрения - преимущества семантических макетов, которые не требуют использования встроенной среды разработки, хорошо видны. Просто из-за их корней API Win32 библиотеки Windows GUI редко предоставляют хорошие средства для их создания. Конечно, их отсутствие не делает создание GUI невозможным или даже трудным - люди просто обычно идут с формами фиксированного размера и т.д. (Это ясно видно для конечных пользователей, переходящих из Windows в KDE - большинство диалогов KDE изменяются по размеру, а Windows 'нет.)