1

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

0 回答 0