Управляемый только для приложения 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, если вы выберете этот путь: