Публикация в качестве ответа, так как длина превышает ограничение длины комментария.
Я отклонил ваш вопрос, потому что он сформулирован с элементами флеймбайта. Я предполагаю, что ваш предыдущий опыт работы с библиотеками GUI был в основном с библиотеками, поддерживающими макеты блоков, такими как Qt. Сам Win32 GUI API не предоставляет никаких примитивов для создания макетов блоков - он использует абсолютные координаты насквозь. Это остается неизменным во многих библиотеках OO, которые основаны на API, таких как MFC. Некоторые библиотеки, такие как VCL, имеют необязательные примитивы для создания макетов блоков (панелей с выравниванием и авторазмером), но, в конце концов, все контрольные изменения положения должны выполняться приложением или структурой GUI, поэтому что-то подобное должно быть реализованным в 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;
}
Как вы можете видеть, может получиться более грязный, чтобы получить более сложный "резиновый стол". Я бы не стал беспокоиться, или если бы мне действительно нужны были сложные динамические макеты, я бы искал другую библиотеку.
Или вы говорите, что это плохая идея?
Определенно не моя точка зрения - преимущества семантических макетов, которые не требуют использования IDE для построения, хорошо видны. Просто из-за своих корней Win32 API библиотеки Windows редко предоставляют хорошие средства для их создания. Конечно, их отсутствие не делает создание графических интерфейсов невозможным или даже сложным - люди обычно просто используют формы фиксированного размера и т. Д. (Это хорошо видно конечным пользователям, переходящим с Windows на KDE - большинство диалогов KDE имеют изменяемый размер, тогда как Windows 'нет.)