gpt4 book ai didi

wpf - 如何最好地利用新的类型等效功能在 WPF 应用程序中托管 MapPoint 控件

转载 作者:行者123 更新时间:2023-12-04 14:37:49 24 4
gpt4 key购买 nike

如何最好地利用新的类型等效功能在 WPF 应用程序中托管 MapPoint 控件。

这与我关于 maintaining interop assembleis 的其他问题有关。关于新的 NoPIA 和 Type Equivalance 功能。但现在我有兴趣实际获得一个有效的实现来展示如何将其用于MapPoint Control。 ActiveX 控件。

我能够遵循有关确保 的建议嵌入互操作类型 对于我的 MapPoint 引用,Visual Studio 中的选项设置为 True,并且我能够在我的 WPF 应用程序中编译和运行类似以下的代码,有趣地将 MapPoint.MappointControl 接口(interface)视为具有构造函数。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
var map = new MapPoint.MappointControl();

if (map.ActiveMap == null)
{
map.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica);
}
}

这段代码似乎有效,所以我猜测 COM 调用都在幕后正常进行,但问题是将此 ActiveX 控件集成到我的 Window 的控件继承中。当使用 Windows 窗体中较旧的 ActiveX introp 方法时,我通常会生成 ActiveX 控件主机,它代表我的 ActiveX 控件,但也是一个 Windows 窗体控件,它允许我在 WPF 应用程序中的窗体或 WindowsFormsHost 中托管它.从我目前的研究来看,我似乎可以 host the MapPoint Control directly in WPF通过创建一个继承自 HwndHost 的类类(class)。然而,这似乎需要大量的工作来免费复制 Windows 窗体方法用于在互操作程序集中生成的内容。我的假设是,通过新的类型等效功能,我们不仅可以实例化控件,还可以将这些控件直接集成到 WPF 或 Windows 窗体应用程序中,而且几乎没有什么麻烦。

我错过了什么吗?如果不是,在 WPF 应用程序中使用 MapPoint 控件的最明智的方法是什么?我希望答案不是仍然让 Visual Studio 或 TlbImp.exe 实用程序生成我们在 Windows 窗体开发中一直使用的旧互操作程序集。

顺便说一句,我确实找到了一些关于 importing a type library 不同方法的详细信息但我不太明白它如何适用于我的情况。

最佳答案

我没有将 MapPoint 与 WPF 一起使用,但我认为您应该只手动将 tblimp.exe 用于 MapPoint 2006(及更早版本)。我了解 MapPoint 2009、2010 和大概 MapPoint 2011 发布时的一切都是自动化的。

关于wpf - 如何最好地利用新的类型等效功能在 WPF 应用程序中托管 MapPoint 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com