Что может и чего нельзя делать WPF?

я изучаю wpf уже около недели .. и у меня есть основной вопрос:

С точки зрения бизнеса и развития (исходя из вашего опыта) .. что можно, а что нельзя сделать с помощью wpf (возможности) ..

пожалуйста, постарайтесь быть иллюстративным ..

примеры нежелательных ответов:
«Полнофункциональные автономные приложения с большим количеством анимации и блестящих изображений»

Второй вопрос:
если я создам пользовательский интерфейс XBAP для своего приложения, могу ли я сделать так, чтобы пользовательский интерфейс не отображался в браузере!

если вы собираетесь отвечать из руководств / веб-сайтов / книг ... пожалуйста, не копируйте и вставляйте их напрямую, попробуйте написать это своими словами ...


person Madi D.    schedule 20.08.2009    source источник
comment
Все, что вы могли делать с Winforms, вы можете делать с WPF, а затем еще кое-что. Все, что вы можете делать с ASP.Net, вы можете делать с WPF, а затем еще кое-что. И да, вы можете создать приложение, которое будет перемещаться как веб-сайт, которому не нужен браузер (под заголовком что угодно, вы можете сделать это и с помощью winforms).   -  person Binary Worrier    schedule 20.08.2009
comment
спасибо за комментарий .. но это все еще не помогает мне, то, что я имел в виду своим вторым вопросом, заключается в том, что если я создам пользовательский интерфейс XBAP для своего приложения, могу ли я сделать так, чтобы пользовательский интерфейс не отображался в браузере! и я знаю, что wpf может делать все, что может сделать winforms, мне нужен более наглядный ответ! нравится, что делает его лучше, что делает его хуже!   -  person Madi D.    schedule 20.08.2009


Ответы (4)


Вы можете разместить все, что построено на Win32 GDI / USER API (WinForms, элементы управления ActiveX) внутри приложения WPF, поэтому даже если вы столкнетесь с некоторыми ограничениями с приложением, которое в основном является WPF, вы всегда можете разместить в нем некоторые старые элементы управления.

А начиная с версии 3.5 SP1 вы даже можете довольно легко размещать анимированную графику DirectX (хотя поддержка 3D в WPF предоставляет свои собственные гораздо более простые способы достижения наиболее часто выполняемых задач).

Что касается сравнения, основным преимуществом WPF перед WinForms является то, что он придерживается собственной компонентной модели, поэтому очень большая часть элементов управления может действовать как контейнеры для других элементов управления. Хотите добавить поле со списком в пункт меню? Не уверен, зачем вам это, но вы можете. Более удобно, если вы поместите кнопку в список (или в древовидный список). Подобные вещи невозможны, если вы не реализуете все стандартные элементы управления с нуля (что и делает WPF).

Недостатки, вероятно, временные: он может быть немного нестабильным на некоторых машинах (код рендеринга кажется подходящим для отображения несовместимости драйверов), но это улучшается с каждым пакетом обновления. Также сильно критиковался рендеринг текста - он идет немного дальше со сглаживанием ClearType, чем обычно делает Windows, поэтому некоторые люди жалуются, что он выглядит размытым.

(Причина, по которой это, вероятно, временные проблемы, заключается в том, что Microsoft Visual Studio 2010 принимает WPF. Так что теперь они «едят свою собачью еду».)

person Daniel Earwicker    schedule 20.08.2009
comment
Большое спасибо за ответ ... вы изложили то, что я знаю ... гораздо проще и приятнее ... теперь я могу более четко подумать о рассмотрении wpf .. - person Madi D.; 20.08.2009
comment
Я должен заявить об отказе от ответственности в отношении этого комментария - большую часть времени с тех пор, как я его написал, я действительно пытался избегать создания пользовательских интерфейсов в чем-либо, кроме HTML / JS / Canvas. Я действительно ничего не могу сделать на этой платформе для бизнес-приложений, это самая производительная платформа, которую я когда-либо использовал, полученные приложения по сути доступны через Интернет и работают на огромном количестве платформ ... Если мне нужно работать в некоторых ситуациях, когда я не могу создать пользовательский интерфейс в браузере, я предпочитаю исправить эту проблему (например, разместить браузер). - person Daniel Earwicker; 04.06.2013

Вы можете делать в WPF практически все, что вам нужно, из приложения с графическим интерфейсом. Но это не настоящая польза, ИМХО.

Одним из реальных преимуществ WPF является скорость и простота разработки после того, как вы пройдете кривую обучения (а есть кривая обучения!)

Другое важное преимущество, и, вероятно, самое большое, заключается в том, что он позволяет дизайнерам работать над презентацией, делать множество интерактивных вещей, используя удобный для дизайнера (во всяком случае, более дружелюбный) инструмент и не отправляя запросы кодерам. Просто изменив .xaml, дизайнер может сделать приложение почти полностью другим и добавить все виды поведения (исчезновение, расширение панелей, всякие полезные вещи). Не меняя ни строчки кода.

person kyoryu    schedule 20.08.2009

Теоретически вы можете делать в WPF все, что хотите. Сравните это с приложением WinForms. Есть ли что-нибудь, что вы не можете построить из этого? Не совсем. То же самое и с WPF. Просто WPF лучше подходит для некоторых вещей, таких как анимация, видео, графика и т. Д. Поскольку он основан на xaml, он также лучше подходит для привязки данных, например, к XML. См. Также этот связанный вопрос.

Что касается вашего второго вопроса, я не понимаю, что вы имеете в виду. Вы имеете в виду, можете ли вы показывать веб-сайты с помощью WPF? Да, конечно, как и WinForms.

person Razzie    schedule 20.08.2009
comment
@razzie: спасибо за ваш ответ, я отредактировал второй вопрос, пытаясь сделать его более понятным ... и, как я ответил на двоичный, я уже знаю, что могу делать то же самое с wpf в качестве winforms (в конце концов, они оба все еще .Net) .. так что если я не хочу добавлять много анимации / видео / графики в свой пользовательский интерфейс, winforms справится с этой задачей? - person Madi D.; 20.08.2009
comment
да, конечно, вы можете придерживаться WinForms, особенно если вам не нужны расширенные возможности мультимедиа WPF. Однако, если вы хотите, чтобы ваше приложение также запускалось в браузере, перейдите на WPF. - person Razzie; 20.08.2009
comment
lol, это наоборот, я не хочу запускать в браузере ... другими словами, я хочу использовать представление веб-навигации (следующая и предыдущая страницы) без необходимости в браузере для отображения страницы xbap .. - person Madi D.; 20.08.2009

Ой, в WPF до сих пор не реализованы некоторые вещи. DataGridViews как популярный пример есть только в предварительном просмотре codeplex. У вас есть много вещей, таких как Expander, которые работают по-разному, и у вас может быть много проблем с автоматическим изменением размера контента.

person Community    schedule 20.08.2009