One can normally host a WPF control in MFC using teh Interop described in like http://weblogs.thinktecture.com/cnagel/2010/04/mfc-and-wpf-interop.html. When I try this I get an exception in RuntimeCoreNet.GeneratedWrappers.CoreWrapperBase. It appears that the .NET Runtime assumes there is some XAML to initialise the control. Has anyone successfully hosted a Runtime MapView in an MFC application?
Code snippet:
HWND GetHwnd(HWND parent, int x, int y, int width, int height)
{
System::Windows::Interop::HwndSourceParameters^ sourceParams = gcnew System::Windows::Interop::HwndSourceParameters("MFCWPFApp");
sourceParams->PositionX = x;
sourceParams->PositionY = y;
sourceParams->Height = height;
sourceParams->Width = width;
sourceParams->ParentWindow = IntPtr(parent);
sourceParams->WindowStyle = WS_VISIBLE | WS_CHILD;
Globals::gHwndSource = gcnew System::Windows::Interop::HwndSource(*sourceParams);
Globals::gwcMapView = gcnew Esri::ArcGISRuntime::UI::Controls::MapView; // Fails here with
// Additional information : The type initializer for 'RuntimeCoreNet.GeneratedWrappers.CoreWrapperBase' threw an exception.
FrameworkElement^ myPage = Globals::gwcMapView;
Globals::gHwndSource->RootVisual = myPage;
return (HWND)Globals::gHwndSource->Handle.ToPointer();
}