Информация об изменениях

Сообщение WinForms - layout по-человечески от 05.12.2021 15:52

Изменено 05.12.2021 16:36 Kolesiki

WinForms - layout по-человечески
Ребят, в качестве хобби запилил проект — новые лэйауты для WinForms. Кратко, это копия WPF-ных лэйаутов, но для WinForms, т.е. инженерно более правильная архитектура: на форме лежит "распределитель контролов", а сами контролы лежат поверх и автоматом раскидываются куда надо.
Пример:



Здесь 3.5 вида расположений: docking, table и горизонтальная/вертикальная полоса.
В самом WinForms уже есть table, но он тормознутый и его использование — зубная боль! (чего стоит один их ублюдочный дизайнер)
Докинг тоже более умный и оторван от личных свойств контрола. Благодаря порядку контролов в доке, они детерминированно занимают свободное пространство.
Ну а полосы — тоже не просто "полоска с хренью", а позволяет выравнивание (вверх/вниз/сентр/растянуть) и, внимание, "притяжение"! Т.е. контролы можно загнать в центр или правый край полоски независимо друг от друга (как listBox2 на картинке).

Вопрос: этот проект кому-нть интересен? Стоит его развивать? Я сам WinForms юзал очень давно, могу что-то и дилетантски сделать, вот как раз народ мог бы посмотреть, что к чему.
WinForms - layout по-человечески
Ребят, в качестве хобби запилил проект — новые лэйауты для WinForms. Кратко, это копия WPF-ных лэйаутов, но для WinForms, т.е. инженерно более правильная архитектура: на форме лежит "распределитель контролов", а сами контролы лежат поверх и автоматом раскидываются куда надо.
Пример:



Здесь 3.5 вида расположений: docking, table и горизонтальная/вертикальная полоса.
В самом WinForms уже есть table, но он тормознутый и его использование — зубная боль! (чего стоит один их ублюдочный дизайнер)
Докинг тоже более умный и оторван от личных свойств контрола. Благодаря порядку контролов в доке, они детерминированно занимают свободное пространство.
Ну а полосы — тоже не просто "полоска с хренью", а позволяет выравнивание (вверх/вниз/сентр/растянуть) и, внимание, "притяжение"! Т.е. контролы можно загнать в центр или правый край полоски независимо друг от друга (как listBox2 на картинке).

Вопрос: этот проект кому-нть интересен? Стоит его развивать? Я сам WinForms юзал очень давно, могу что-то и дилетантски сделать, вот как раз народ мог бы посмотреть, что к чему.

PS
Наверное, стоит пояснить, зачем выкопали стюардессу.
С моей колокольни дело выглядит так:

Есть WinForms — "очень продвинутый враппер" над Win32. Соотв. настолько быстрый и нативный, насколько можно себе позволить. Ну и откровенно, он ничем не плох для создания UI. Сколько "плоскоземельщики" (сторонники плоского интерфейса) ни выёживались, мутный, неразличимый интерфейс "тыкай в любой квадрат — вдруг это кнопка?" — не наш девиз. Я — олдскул, мой идеал — интерфейс Офиса 2003. Вот та тёплая, ламповая "синева", где кнопка — это кнопка, всё кругленькое и легко распознаваемое. Собственно, это и есть тот WinForms, который я хочу возродить.

WPF — это разумные зёрна пшеницы, кинутые в тупорылую почву "песок за полярным кругом". Шикарная идея декларативного интерфейса, доверенная стаду макак и укуренным гикам-космическим-архитекторам. Результат — гремучий, тормознутый павлиноуткаёж для создания километровых шаблонов кнопки. Сразу в топку.

Но... у нас осталось пара зёрен! А что если... да не! Не может быть... декларативный WinForms?! Что, прямо вот так просто <Button> и всё? "Да не, это фантастика!" (ц) Но на то мы и погромизды — боги компьютера, способные создавать "из ничего" шедевры! Так что программа максимум — это полная замена ушлёпскому WPF в виде новой, декларативной надстройки над WinForms, которая будет маленькой, простой, транслироваться в WinForms и наконец дать тот инструмент, который мы заслужили за годы мучений с XAML.