我想在应用中使用WPF。我想用C ++编写它。是否必须管理应用程序?我知道我可以将管理与非托管混合使用。我想知道我是否可以让整个应用程序不受管理。
答案 0 :(得分:7)
您可以轻松地在非托管代码中开发99%的WPF应用程序,但是使其100%不受管理是非常困难的。
WPF类没有Guid属性,因此它们不能与COM一起使用。因此,使用100%非托管代码构建WPF对象(如Button和Window)需要一个非托管CLR API。 Hosting API可能是最简单的,但它仍然是相当多的工作。
如果您愿意接受99%的非托管代码,只需使用/ clr选项编译您的应用程序,并使用IJW实例化WPF对象并调用Application.LoadComponent等方法。
另请注意,WPF绑定到非托管对象要求这些对象完全支持COM,包括IDispatch。
答案 1 :(得分:1)
正如您所知,您可以通过互操作混合托管和非托管;但是,WPF在CLR上运行。
以下是Web上的一篇文章,其中一些人推测未来的非托管版本:
http://neilmosafi.blogspot.com/2008/07/unmanaged-version-of-wpf-coming.html
如果你选择走这条路线,这是关于WPF /本地互操作的附加参考: