Управляемый только для приложения WPF код?

Я хочу использовать WPF в приложении. Я хочу написать это на C++. Нужно ли управлять приложением? Я знаю, что могу смешивать управляемые с неуправляемыми. Мне интересно, смогу ли я управлять всем приложением.

2 ответа

Решение

Вы можете легко разработать 99% своего приложения WPF в неуправляемом коде, но сделать его неуправляемым на 100% довольно сложно.

Классы WPF не имеют атрибута Guid, поэтому они не будут работать с COM. Поэтому для создания объектов WPF, таких как Button и Window, со 100% неуправляемым кодом требуется один из неуправляемых API CLR. Хостинг API, вероятно, самый простой, но он все еще довольно трудоемкий.

Если вы готовы принять неуправляемый код на 99%, просто скомпилируйте приложение с параметром /clr и используйте IJW для создания экземпляров объектов WPF и вызова методов, таких как Application.LoadComponent.

Также обратите внимание, что привязка WPF к неуправляемым объектам требует, чтобы эти объекты полностью поддерживали COM, включая IDispatch.

Как вы уже знаете, вы можете смешивать управляемое и неуправляемое посредством взаимодействия; однако WPF работает на CLR.

Вот статья в Интернете, где некоторые люди рассуждают о будущей неуправляемой версии:

http://neilmosafi.blogspot.com/2008/07/unmanaged-version-of-wpf-coming.html

Вот дополнительная ссылка на WPF/native interop, если вы выберете этот путь:

http://msdn.microsoft.com/en-us/library/ms742522.aspx

Другие вопросы по тегам