WPF против WinForms

О WPF:

В предыдущей главе мы говорили о том, что такое WPF, и немного о WinForms. В этой главе я попытаюсь сравнить их, потому что, хотя они служат одной цели, между ними есть МНОГО различий. Если вы никогда раньше не работали с WinForms, и особенно если WPF — ваша самая первая среда графического интерфейса, вы можете пропустить эту главу, но если вас интересуют различия, то читайте дальше.

Наиболее важное различие между WinForms и WPF заключается в том, что, хотя WinForms — это просто слой поверх стандартных элементов управления Windows (например, TextBox), WPF создается с нуля и почти во всех ситуациях не полагается на стандартные элементы управления Windows. Это может показаться незначительной разницей, но на самом деле это не так, что вы обязательно заметите, если когда-либо работали с фреймворком, который зависит от Win32/WinAPI.

Отличным примером этого является кнопка с изображением и текстом на ней. Это не стандартный элемент управления Windows, поэтому WinForms не предлагает вам эту возможность из коробки. Вместо этого вам придется нарисовать изображение самостоятельно, реализовать собственную кнопку, поддерживающую изображения, или использовать сторонний элемент управления. В WPF кнопка может содержать что угодно, потому что это, по сути, граница с содержимым и различными состояниями (например, нетронутая, зависшая, нажата). Кнопка WPF не имеет внешнего вида, как и большинство других элементов управления WPF, что означает, что она может содержать в себе ряд других элементов управления. Вам нужна кнопка с изображением и текстом? Просто поместите элемент управления Image и TextBlock внутри кнопки, и все готово! Вы просто не получите такой гибкости от стандартных элементов управления WinForms, поэтому существует большой рынок для довольно простых реализаций элементов управления, таких как кнопки с изображениями и так далее.

Недостаток для эта гибкость заключается в том, что иногда вам придется работать усерднее, чтобы добиться чего-то, что было очень легко с WinForms, потому что оно было создано только для того сценария, для которого вам это нужно. По крайней мере, именно так кажется вначале, когда вы создаете шаблоны для создания ListView с изображением и хорошо выровненным текстом, что делает WinForms ListViewItem в одной строке кода.

Это было всего лишь одно отличие, но, работая с WPF, вы поймете, что на самом деле это основная причина многих других различий — WPF просто делает все по-своему, как к лучшему, так и к худшему. Вы больше не ограничены тем, что делаете что-то, как Windows, но чтобы получить такую ​​гибкость, вы платите немного больше работы, когда вы действительно просто хотите делать что-то как Windows.

Ниже приводится полностью субъективный список ключевых преимуществ WPF и WinForms. Это должно дать вам лучшее представление о том, во что вы собираетесь.

Преимущества WPF

  • Он новее и, следовательно, больше соответствует текущим стандартам.
  • Microsoft использует его для множества новых приложений, например Visual Studio
  • Он более гибкий, поэтому вы можете делать больше вещей без необходимости писать или покупать новые элементы управления.
  • Когда вам все же нужно использовать сторонние элементы управления, разработчики из этих элементов управления, скорее всего, будут больше ориентированы на WPF, потому что он более новый
  • XAML упрощает создание и редактирование вашего графического интерфейса, а также позволяет разделить работу между дизайнером (XAML) и программистом ( C #, VB.NET и т. Д.)
  • Привязка данных, которая позволяет получить более четкое разделение данных и макета.
  • Использует аппаратное ускорение для рисования графического интерфейса, для лучшая производительность
  • Позволяет создавать пользовательские интерфейсы как для приложений Windows, так и для веб-приложений (Silverlight/XBAP)

Преимущества WinForms

  • Он старше и, следовательно, более испытан и протестирован.
  • Уже есть много сторонних элементов управления, которые вы можете купить или получить бесплатно
  • Дизайнер в Visual Studio на момент написания все еще лучше подходит для WinForms, чем для WPF, где у вас будет o выполнять большую часть работы самостоятельно с помощью WPF.
Эта статья полностью переведена на следующие языки:
  • африкаанс
  • арабский
  • болгарский
  • каталонский
  • китайский
  • хорватский
  • чешский
  • датский
  • голландский
  • французский
  • немецкий
  • гуджарати
  • иврит
  • венгерский
  • индонезийский
  • итальянский
  • японский
  • каннада
  • корейский
  • литовский
  • македонский ( Бывшая югославская Республика Македония)
  • норвежский (букмол)
  • персидский
  • польский
  • португальский
  • румынский
  • русский
  • сербский
  • словацкий
  • словенский
  • испанский
  • тамильский
  • тайский
  • турецкий
  • украинский
  • узбекский
  • вьетнамский

Ваш предпочитаемого языка нет в списке? Щелкните здесь, чтобы помочь нам перевести эту статью на ваш язык!


Предыдущая Следующая
Оцените статью
techsly.ru
Добавить комментарий