Подтвердить что ты не робот

Что такое WPF и как он сравнивается с WinForms?

Я смотрел на WPF, но я никогда в нем не работал (за исключением 15 минут, что вызвало этот вопрос). Я посмотрел на этот пост, но это действительно о "Flash" WPF. Какая разница между приложением Windows Forms и WPF-приложением?

4b9b3361

Ответ 1

WPF - это слой представления пользовательского интерфейса, основанный на векторной графике, где WinForms нет. Почему это важно/интересно? Будучи основанным на векторе, он позволяет слою презентации плавно масштабировать элементы пользовательского интерфейса до любого размера без искажений.

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

WPF также полностью поддерживает привязку данных, что означает, что вы можете привязать любое свойство элемента UI к объекту .NET(или свойству/методу объекта), свойству другого элемента пользовательского интерфейса или данных. Да, WinForms поддерживает привязку данных, но гораздо более ограниченным образом.

Наконец, WPF является "доступным для скинов" или "тематическим", что означает, что в качестве разработчика вы можете использовать окно списка, потому что это поведение, которое вам нужно, но кто-то может "обмануть" его, чтобы он выглядел как нечто совершенно другое.

Подумайте о окне списка изображений. Вы хотите, чтобы контент фактически был изображением, но вы по-прежнему нуждаетесь в поведении в виде списка. Это абсолютно тривиально делать в WPF, просто используя список и изменяя презентацию содержимого, чтобы содержать изображение, а не текст.

Ответ 2

Хороший способ взглянуть на это может начаться с вопроса, что именно Winforms.

Оба Winforms и WPF являются фреймворками, предназначенными для упрощения кодирования слоя пользовательского интерфейса. На самом деле старые люди здесь могут говорить о том, как писать версию Windows "Hello, World" может занять около 4 страниц кода. Кроме того, камни были намного более мягкими, и нам пришлось сражаться с гигантскими ящерицами, пока мы закодировали. Библиотека и дизайнер Winforms принимает множество общих задач и упрощает их запись.

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

Улучшение WPF заключается в том, что вместо того, чтобы давать вам возможность писать полностью настраиваемый элемент управления с нуля или заставлять вас использовать один набор элементов управления с ограниченными возможностями настройки, вы можете теперь отделить функцию элемента управления от его появление. Возможность описать, как наши элементы управления выглядят в XAML, и сохранить это отдельно от того, как элементы управления работают в коде, очень похожа на модель HTML/Code, с которой работают веб-программисты.

Хорошее приложение WPF следует той же модели, что и хорошее приложение Winforms; сохраняя как можно больше материала из слоя пользовательского интерфейса. Основная логика приложения и уровня данных должна быть одинаковой, но теперь есть более простые способы сделать визуальные эффекты более впечатляющими, поэтому, вероятно, большая часть информации, которую вы видели на ней, включает в себя более яркий визуальный материал. Если вы хотите изучить WPF, вы можете начать использовать его почти так же, как и Winforms, а затем рефакторинг других функций, когда вы их поймете. Для превосходного примера я очень рекомендую серию блога Скотта Ханзельмана о развитии BabySmash, которые начинаются здесь. Это отличный прорыв в процессе, как в коде, так и в мыслях.

Ответ 3

Чтобы ответить на ваш вопрос, приложение WPF является приложением Windows. WPF - это новая среда Microsoft (фактически, это подсистема .NET framework 3.0) для написания богатых приложений Windows. Это подразумевается как возможная замена WinForms (хотя, по общему признанию, скорость принятия гораздо медленнее, чем ожидалось MS).

Ответ 4

Начните здесь десятки и десятки видео: http://www.windowsclient.net/learn

В этом случае маркетинговый шпиль довольно хорош:

** "Windows Forms - это набор классов в .NET Framework, который позволяет быстро разрабатывать богатые клиентские приложения Windows с мощными расширяемыми библиотеками для элементов управления и графики пользовательского интерфейса. Вы можете включить WPF в ваши приложения Windows Forms через взаимодействие WPF-Windows Forms в .NET 3.5 Framework." *

* "WPF, компонент Microsoft.NET Framework 3.5, позволяет вам создавать пользовательские приложения следующего поколения. WPF поддерживает пользовательский интерфейс, мультимедиа, документы, аппаратное ускорение, векторную графику, масштабируемость для разных форм-факторов, интерактивную визуализации данных и превосходной читаемости контента". **

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

Ответ 5

WPF обозначает W indows P повторение F. Хотя технология WinForms зависит от GDI/GDI +, WPF построен непосредственно поверх DirectX. Это означает, что вы можете делать гораздо больше, чем вы можете, с помощью WinForms, но все еще используя библиотеку классов .NET Framework. Вы можете создавать богатые пользовательские интерфейсы, 2D/3D-игры, презентации и многое другое. WPF очень похож на Flash (swf), без элемента "Movie". WPF основан на .NET и может использоваться для создания мощных приложений с поддержкой веб-приложений на стороне клиента.

Ответ 6

  • WPF - это, по сути, новый API для создания графических пользовательских интерфейсов для платформы Windows.
  • WPF - это не просто система презентаций следующего поколения для создания приложения Windows Client, а также визуально ошеломляющие пользовательские интерфейсы.
  • WPF построен поверх DirectX (Direct3D) вместо того, чтобы полагаться на более старую подсистему GDI/GDI +.
  • WPF представляет собой слой представления пользовательского интерфейса на основе векторной графики и на основе вектора позволяет слою представления плавно масштабировать элементы пользовательского интерфейса до любого размера без искажений.
  • WPF - это "скин-способный" и "способный к теме". Это означает, что WPF позволяет изменять внешний вид любого элемента управления пользовательского интерфейса.

Ответ 7

С точки зрения реализации, одним из главных отличий является то, что WPF использует строго принудительную архитектуру MV-VM с моделью view-viewmodel, причем представление определяется на пользовательском языке разметки XAML, а модель просмотра - класс с доступными свойства, а модель эффективно является уровнем доступа к данным. WinForms, к сожалению, не имеет такого явного разделения - хотя по соглашению различные аспекты могут быть сгруппированы в разные файлы С#, все его код. На практике это делает разработку WPF более похожей на развитие веб-DOM, а инфраструктура WPF работает в фоновом режиме и опосредованно.