Windows Forms or WPF.
Пишу приложение с GUI. В интерфейсе будет выводиться на форму много превьюшек изображений.
Что должно быть реализовано:
1) Масштабируемость превьюшек в зависимости от их количества на форме.
2) Возможно, собственные контролы, например, как GridView с чекбоксами и изображениями в ячейках.
3) Эффекты плавного появления и исчезновения меню и новых элементов формы. Слайдеры, которые тоже должны медленно появляться и исчезать.
Какую технологию для этого выбрать? Если возможно реализовать необходимый интерфейс на Windows Forms, то выбрал бы его.
Но, если будет много секса с реализацией, а в WPF его будет меньше, то выбрал бы, конечно, второе.
Если верно понял, то в WPF всё примерно, как в ASP. В ASP мне не понравилось, что некоторых стандартных и необходимых контролов просто нет и приходится либо искать уже готовые, или писать свои. Например, редактируемого выпадающего списка там нет. Да и Text Box'a с возможностью подсветки строк, тоже.
Так что же выбрать, чтобы разработка была быстрой и простой?
Всё перечисленное легко реализуется в обеих технологиях.. Конечно, способы будут сильно разные. Например, третий пункт в WPF можно сделать декларативно, заданием анимаций, а в WinForms для этого придётся вручную писать код с применением таймеров (или найти библиотеку, в которой подобное уже реализовано).
Тогда другой вопрос: при ресайзе формы, нужно будет самому писать ресайз для всех контролов или можно как-то сделать, чтобы, как в Qt, все само ресайзилось? Какие-нибудь лейауты?
Не знаете ни то ни то - так учите более современную, будущее себе обеспечивайте.
Я уж не говорю о том, что любые ресайзы в винформ, сделанные самостоятельно, будут мерцать, мигать и всячески делать мелкие проблемки.
А заказчик будет думать, что "все возможно" - и попросит вас сделать круглую кнопочку (а видел он такое где нибудь).
И что вы ему скажете? Будете рассказывать об особенностях устаревшей технологии?
накидать контролов на форму, и работать с ними в коде, без заммеля.
:-)
Это был плохой совет, постарайтесь ему не следовать.
Но и для себя его тоже писать долго не хочется.
Смотри свойства Dock и Anchor.
Смотри компоненты FlowLayoutPanel, TableLayoutPanel.
Смотря какие ресайзы нужны. Картинки обычно ресайзятся сами, будучи заданными в качестве BackgroundImage разных контролов (та же Panel), или Image контрола PictureBox.
Самостоятельно менять размер изображения - элементарно: просто задаёшь нужный размер в конструкторе, что-то вроде new Bitmap(image, size).
Не знаете ни то ни то - так учите более современную, будущее себе обеспечивайте.
Я уж не говорю о том, что любые ресайзы в винформ, сделанные самостоятельно, будут мерцать, мигать и всячески делать мелкие проблемки.
С этим полностью согласен. Разработка в .NET неумолимо мигрирует на WPF. Поэтому следует изучать эту технологию.
Однако, не могу не возразить: никогда не имел проблем с ресайзом. Никаких мерцаний. С чем действительно есть проблемы в WinForms - так это прозрачность.
Хотя с другой стороны - программеру в крупной конторе вовсе не зачем знать WPF: достоинство этой технологии в том, что наконец-то сделали чёткое разделение кода и GUI. В крупных конторах формошлёпством теперь могут заниматься дизайнеры, а программер пишет только код.
И что вы ему скажете? Будете рассказывать об особенностях устаревшей технологии?
Круглая кнопочка элементарно создаётся в WinForms.
Мне не хочется вступать в спор (думаю, это моё последнее сообщение в этой теме), однако стоит вспомнить печальный опыт времён DOS, когда каждое приложение имело свой интерфейс, и пользователям было чрезвычайно сложно осваивать что-то новое. Именно тогда появился единый стиль интерфейса приложений.
К сожалению, с появлением WPF формы стали клепать дизайнеры, коим начхать на привычки пользователей, и ныне мы получаем массу пестрых аляповатых софтин, для начала работы с которыми нужно предварительно изучить их интерфейс, не похожий на всё привычное. Не спорю, иногда попадаются хоть и нестандартные интерфейсы, но чрезвычайно удобные, но это скорее исключение.
К тому же WPF намного требовательней к ресурсам, и неприменима на разных встроенных системах.
Мнения разошлись. Пожалуй, можно попробовать и то, и другое.
Интересно, кто заминусовал первый ответ koodeer, хотя даже более интересно, почему.