WinForms и WPF в одном проекте? - PullRequest
1 голос
/ 27 июля 2011

Я ищу немного просветления ... Я начал работать над проектом в WPF и столкнулся с необходимостью в некотором старом коде, который я написал в WinForms.Я ожидал предупреждения какого-то типа из-за различий между этими двумя платформами, но я решил импортировать несколько файлов кода из проекта WinForms в новый проект WPF, чтобы посмотреть, что произойдет.Обратите внимание, что и код WinForms, и код WPF находятся в одном проекте, они скомпилированы в одну сборку.Ожидая ошибки, я не только удивился, что смог ее импортировать, но и код работал правильно.Конечно, они оба написаны на C # и .Net 4.0, но я не понимал, что WPF и WinForms могут сосуществовать таким образом.сосуществовать в одной сборке без конфликта?

Ответы [ 3 ]

7 голосов
/ 27 июля 2011

Между WPF и Winforms нет большой разницы. Они оба используют HWND для хранения своего контента. Они оба используют насос сообщений. Они оба разрешают вызовы Win32 для большинства вещей. WPF и Winforms используют ресурсы. Доступ к обоим производит код IL. Они просто ссылаются на разные базовые сборки, но эти базовые сборки могут сосуществовать так же, как вы можете использовать как System.Xml, так и System.IO в одном модуле.

Основные отличия являются внутренними, такими как метод рисования / рендеринга, но вы можете отображать содержимое Winforms в WPF с помощью WinFormsHost .

2 голосов
/ 27 июля 2011

Проблемы возникают только в том случае, если вы пытаетесь разместить контент WPF в старой школе Form или пытаетесь разместить элемент управления WinForm в WPF Window. За пределами этого сценария они оба компилируются до совершенно корректного IL, и все, что нужно .NET для создания правильного машинного кода.

0 голосов
/ 26 мая 2013

Вообще говоря, WPF и Winforms - это технологии уровня представления в Windows Application Dev. Это просто две разные части одной и той же платформы - .Net Framework.

Согласно Википедии:

WinForms

Winforms - это имя, данное графическому прикладному программированию. интерфейс (API), входящий в состав Microsoft .NET Framework, Предоставление доступа к собственным элементам интерфейса Microsoft Windows путем обертывание существующего Windows API в управляемом коде.

WPF

Windows Presentation Foundation (или WPF) - это компьютерное программное обеспечение графическая подсистема рендеринга пользовательских интерфейсов на базе Windows Приложения. WPF, ранее известный как "Авалон", был изначально выпущен как часть .NET Framework 3.0. Вместо того, чтобы полагаться на более старая подсистема GDI, WPF использует DirectX.

А на следующем снимке вы можете получить более четкое представление об их отношениях. .Net Framework

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