我在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>