[WinForms] Ньюбский вопрос по WinForms
Или хочется менедж код?
Допустим я хочу написать какой-то свой контрол, который бы позволял мне редактировать текст и полностью управлял его отрисовкой, т.е. говорил - таким-то шрифтом такую-то букву с такими-то параметрами отрисовать тут, а тут отрисовать вот такую линию, а сюда вот такой битмапчик и т.д. Могу ли я этого добиться на WinForms?Да, можешь. Для того, чтобы было кроссплатформенно, не стоит использовать виндовые сообщения типа WM_PAINT — лучше использовать события типа OnPaint.
Windows Presentation Foundation, более свежий gui от Microsoft, не поддерживается Mono (вроде бы)
Еще можешь использовать Gtk# из Mono. Сам не смотрел, но т.к. это Gtk, то кроссплатформенность полная.
Да
>то будет ли это дело работать под mono, или почти наверняка нет?
Можно писать сразу под моно у которой есть свой дистрибутив для винды.
Если использование WinForms позволит получить кросплатформенность на халяву, то это окупит затраты на его изучение, так как всё равно хотелось узнать что это и с чем едят, а тут будет хороший повод. Если не даёт или в нём то что мне нужно придётся делать через жопу, то и хрен с ним, просто портирую свою оббёртку над WinAPI под иксы.
Можно писать сразу под моно у которой есть свой дистрибутив для винды.Гым. Об этом я как-то не думал. 8)
А сколько оно весит? А то вряд ли оно у пользователя стоит, придётся с собой таскать.
Плюс у них еще там есть свой Gtk#.
Опять же, хочется иметь возможность юзать всякие фичи с темами рабочего стола в Vista, чтобы моё приложение не выглядело белой вороной. Я не знаю, умеют ли это всякие Qt и т.п.Trolltech утверждает, что with Qt 4.3, Qt-based applications are now fully compliant with Vista style guidelines, and take advantage of the latest Vista innovations. Под рукой висты нету, но можешь позапускать qtdemo из посмотреть.
Наверняка, если требования к интерфейсу ставятся несовсем стандарные, там будет куча проблем и глюков, с которыми сталкиваться не хочется.Думаю, тогда бы тролли уже давно разорились. :-)
Кроссплатформенность с Qt получается нахаляву. Писал на нём машграф, просто скопировал проект под Linux, набрал qmake && make - и всё собралось и даже потом запустилось. :-)
Вот такая вот реклама...
А. Ещё у них документация клёвая. :-)
окупит затраты на его изучение, так как всё равно хотелось узнать что это и с чем едят, а тут будет хороший повод.лол. Это ж официально мёртвая технология, зачем её изучать?
A java ты уже изучил?
Java мне не нравится как класс. Во-первых тормозит, во-вторых не видел ни одного хотя бы пристойного интерфейса у программ на Java.
И поэтому ты выбрал моно. Гениально.
Приложения на моно одинаковой сложности стартуют раза в 2 быстрее. Правда, работают в полтора раза медленее
+1, пиши на Qt, аффтор, а WinForms выкинь на помойку!
В общем, решил таки остановиться на C++, а на счёт того, использовать ли какой-нибудь сторонний фреймворк для реализации интерфейса подумаю ближе к делу.
Оставить комментарий
sbs-66
Я вообще в WinForms ни в зуб ногой. Однако возник такой вопрос. Допустим я хочу написать какой-то свой контрол, который бы позволял мне редактировать текст и полностью управлял его отрисовкой, т.е. говорил - таким-то шрифтом такую-то букву с такими-то параметрами отрисовать тут, а тут отрисовать вот такую линию, а сюда вот такой битмапчик и т.д. Могу ли я этого добиться на WinForms? (ну, или его более продвинутом аналоге, забыл как называется). Если могу, то будет ли это дело работать под mono, или почти наверняка нет?Просто хочется написать кросплатформенную утилитку с довольно навороченным редактором и сложным рендерингом и сложной обработкой пользовательских действий. На С++ + WinAPI я это сделать могу, но потом заколебусь портировать под линукс, да и опыта написания программ под иксы нету. И если можно написать то, что мне нужно под .NET, а кросплатформенность получить на халяву, то я бы потратил лучше время не на траханье с иксами под линухом, а на то, чтобы разобраться в идеологии .NET и WinForms.
Собственно такой вот вопрос возник.
PS. Ну и до кучи. Если кто разбирался в XUL, позволяет ли оно делать то, что мне надо, или оно только для плагинов к FF годиться?