Есть такой замечательный проект - сценарный язык OneScript. Для него можно написать библиотеку например на C# и расширить функционал языка. В своё время я так и сделал, написал библиотеку форм и дизайнер форм. Формы работают в среде Windows и в среде Linux (благодаря библиотекам mono-complete). А вот на macOS возникли проблемы - отсутствие для последних версий 64-х битной версии Mono. Досадно. Но - мы не привыкли отступать! Занялся поиском способа создать формы для односкрипта, работающие на любой платформе. А что у нас работает на любой платформе? Ну конечно же браузер. Кстати такой успешный проект уже существует, посмотрите на разработку Минималистичный веб-сервер на нативном TCPСервер.

    А что если сделать немного по другому? Как говорится - Охота пуще неволи! Наметил цели.

  • Нужна программа с браузером в окне, но не браузер с нашей программой.
  • Нужен простой код создания и управления элементами и простая обработка событий. Что то вроде
    Кнопка1 = ДФ.Кнопка();
    Кнопка1.Родитель = Форма1;
    Кнопка1.Текст = "Кнопка";
    Кнопка1.Нажатие = 
      ДФ.Действие(ЭтотОбъект, 
        "Кнопка1_Нажатие");
    
  • Запуск на любой платформе где можно запустить браузер Chrome.
  • Избежать необходимости изучать дополнительные фреймворки.
  • Приложение должно работать в фоне, запускаться при старте системы и оффлайн.
  • Версия браузера определяется пользователем, а не системой.
  • Возможность создания меню, нескольких окон, иконки в трее (менюбаре), управление ими.
  • Возможность режима kiosk-mode (как в десктопных играх) и для создания презентаций в том числе.
  •     Получились декларативные формы, десктопное приложение на базе веб-технологий, со всеми возможностями движка Chrome. За подробностями переходите в раздел Как это работает.