Почему WPF? (Как API для 2D-графики) - PullRequest
1 голос
/ 27 января 2010

У меня есть модуль визуализации для 2D векторной графики. Все вызовы API рисования там строго изолированы. Я хочу иметь возможность заменить один API рисования другим API рисования, просто переопределив модуль. Все данные для визуализации передаются в модуль через единый интерфейс с именем Ixxx. У меня есть выбор между GDI + (через WinForms) и WPF, так почему я должен выбрать последний? Любая причина?

После некоторого анализа общих случаев перехода на WPF среди друзей я обнаружил, что основными причинами являются:

  1. WPF новее / круче / современнее / интереснее / бла-бла-бла.
  2. Ixxx не разработан достаточно абстрактно (например, передается необработанный XAML) или его не существует вообще (любой модуль рисует что угодно, когда угодно и так, как хочет). Конечно, если у вас нет собственного решения для графического описания, лучше использовать XAML, чем ничего не использовать и использовать общий HDC.

Опять же, я не собираюсь «продавать свою душу» (подробности см. В AJ & TZ) какому-либо конкретному API, я бы хотел просто «сдать его в аренду» временно. Это означает, что не нужно использовать API для чего-либо, кроме рисования всех данных в одном месте.

С уважением, Serge.

Ответы [ 2 ]

4 голосов
/ 27 января 2010
  • WPF был разработан для векторной графики. GDI + предназначен для растровой графики.
  • WPF будет использовать графический процессор вашего компьютера. GDI + сделает все в процессоре.
  • WPF имеет совершенно новый API с акцентом на простоту использования. GDI + является древним (дни Windows 3.x) и ориентирован на производительность для того, что мы сейчас считаем аппаратным обеспечением с чрезвычайно низким энергопотреблением.
  • WPF имеет совершенно новый API, который большинство из нас не понимает. Все знают, как использовать GDI +.
  • Изучите 2D WPF, и у вас есть основа для 3D WPF. После GDI + вам нужно начать заново с Direct3D.

Примечание: я не графический человек, я пишу бизнес-приложения. В основном это основано на маркетинговой литературе и небольших тестовых программах.

3 голосов
/ 27 января 2010

WPF графика с аппаратным ускорением. Я бы посчитал это критическим соображением. Это очень гибкий API для 2D-графики и имеет хорошее онлайн-сообщество.

Эту библиотеку, возможно, стоит посмотреть, что может сделать WPF: http://dynamicdatadisplay.codeplex.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...