我在我的 Winform 应用程序中实现了 WPF MapControl 控件。
(基本上,将 WPF 用户控件项目添加到您的 Winform 解决方案中。拖放任何 WPF 控件。我选择了 DevExpress WPF MapControl,但 Microsoft 的变体或任何其他控件也可以正常工作。构建项目一次,然后拖放然后出现在您的 Winform 项目中的控件。如果您希望设置/获取任何属性或公开任何方法,您将转到相关的 C# 代码并将其公开。)
问题:我想创建一个方法,它有两个 GeoPoint 参数(经度/纬度对)。然后,该方法将使用 BingMaps 或 OpenMapDocs 显示最佳路线,以显示从 A 点到 B 点的路线,想想谷歌地图。我会从 Winform 端的按钮或链接调用此方法。
现在,我非常清楚如何实现转换和方法。去过那里,做到了,可以这么说。我在控件后面的代码中有两个 GeoPoint 经度/纬度对。
我的问题是如何处理 XAML 方面。我对 WPF 和 XAML 方面还不是很熟悉。
DevExpress 说:
需要在 XAML 用户控件内配置路由数据服务。
那不是最有帮助的。
有任何想法吗?
我正在使用.Net 4.5。
这是 DevExpress MapControl 的 XAML 代码。该问题与 Microsoft MapControl 相同。这两个代码共享非常相似的 XAML,至少从我的视觉来看是这样。
<UserControl x:Class="bvMaps.MapDevex"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map"
mc:Ignorable="d"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<Grid x:Name="MapContainer">
<dxm:MapControl HorizontalAlignment="Left" Margin="0,0,0,0" Name="mapControl1" VerticalAlignment="Top">
<dxm:InformationLayer>
<dxm:InformationLayer.DataProvider>
<dxm:BingSearchDataProvider BingKey="myBingKey"/>
</dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
<dxm:InformationLayer>
<dxm:InformationLayer.DataProvider>
<dxm:BingGeocodeDataProvider BingKey="myBingKey"/>
</dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
<dxm:InformationLayer>
<dxm:InformationLayer.DataProvider>
<dxm:BingRouteDataProvider BingKey="myBingKey"/>
</dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
<dxm:ImageTilesLayer Margin="0,0,0,0">
<dxm:ImageTilesLayer.DataProvider>
<dxm:BingMapDataProvider Kind="Road" BingKey="myBingKey"/>
</dxm:ImageTilesLayer.DataProvider>
</dxm:ImageTilesLayer>
</dxm:MapControl>
</Grid>
</UserControl>