WPF应用程序只是托管代码吗?

zoo*_*opa 3 c++ wpf unmanaged managed

我想在一个应用程序中使用WPF.我想用C++编写它.是否必须管理应用程序?我知道我可以将管理与非托管混合使用.我想知道我是否可以让整个应用程序不受管理.

Ray*_*rns 7

您可以轻松地在非托管代码中开发99%的WPF应用程序,但是使其100%不受管理是非常困难的.

WPF类没有Guid属性,因此它们不能与COM一起使用.因此,使用100%非托管代码构建WPF对象(如Button和Window)需要一个非托管CLR API.该托管API可能是最简单的,但它仍然是相当多的工作.

如果您愿意接受99%的非托管代码,只需使用/ clr选项编译应用程序,并使用IJW实例化WPF对象并调用Application.LoadComponent等方法.

另请注意,WPF绑定到非托管对象要求这些对象完全支持COM,包括IDispatch.