Пользовательские элементы управления WinForm и WPF - PullRequest
4 голосов
/ 11 февраля 2011

Я провел некоторое время, работая над пользовательскими и пользовательскими элементами управления WinForm.Однако в глубине души все громче звучат голоса, говорящие о том, что технология WinForm устарела и что WPF - это будущее настольных компьютеров.

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

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

Ответы [ 2 ]

5 голосов
/ 11 февраля 2011

Конечно, возможно использовать элементы управления WinForms в приложении WPF с использованием WindowsFormHost элемента управления . Как обычно, есть несколько предостережений. В частности, два типа управления плохо перекрываются.

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

Обязательный отказ от ответственности: я далеко не эксперт по WPF и, по-видимому, немного менее измучен в WinForms, чем многие разработчики. Так что, возможно, мой совет следует принять с крошкой соли, но я думаю, что все же стоит обдумать.

3 голосов
/ 11 февраля 2011

Ваши элементы управления будут многократно использоваться (до WindowsFormHost, как предложил Коди). Тем не менее, я бы не рассчитывал на возможность переноса вашего кода на WPF. Фундаментальная модель программирования совершенно иная (WPF в значительной степени зависит от привязки данных и, таким образом, получает выгоду от совершенно другого кода), как и модель рендеринга (WPF не использует GDI +). Лучший способ приблизиться к большинству элементов управления в WPF - это использовать встроенные шаблоны; кроме пользовательских панелей макета (которые на самом деле не «рисуют»), я пока не нашел ничего, что требовало бы пользовательских методов рисования в элементах управления.

Конечно, было бы напрасно создавать приложение WPF просто для размещения элементов управления WinForms. WPF может (или не может!) Быть «будущим», но это не значит, что вы должны выбрасывать то, что у вас есть по прихоти.

Вы говорите, что выглядели только поверхностно. Если вы считаете, что это может стоить инвестиций, почему бы не выполнить проект НИОКР, чтобы доказать, как интеграция может работать в небольшой части системы?

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