WPF Bing地图控件 - 更改比例尺单位

时间:2011-10-26 21:38:46

标签: wpf bing-maps

我正在为WPF尝试Bing Maps控件,这让我很生气。

我无法弄清楚如何访问内置比例尺,以便我可以将单位更改为公制。

我可以添加新的比例尺,指南针等等,但无法访问默认值。

任何人都知道如何做到这一点?

2 个答案:

答案 0 :(得分:4)

一个老问题,但有一个更简单的方法来做到这一点。只需将地图上的Culture属性设置为使用指标的国家/地区。

例如:

<m:Map 
  x:Name="MapObject" 
  CredentialsProvider="YOUR_KEY" 
  Center="-38.1231102,145.2116017" 
  ZoomLevel="11"  
  Mode="Aerial" 
  Culture="en-au"
/>

答案 1 :(得分:1)

在这里,你好友。对于在互联网上发布FindVisualChild方法的人,可以获得信用。

void SomeMethod()
{  
    var mapScale = FindVisualChild<Scale>(YourBingMapControl);
    mapScale.DistanceUnit = DistanceUnit.KilometersMeters;
}

static TChildItem FindVisualChild<TChildItem>(DependencyObject obj) where TChildItem : DependencyObject
    {
    // Search immediate children first (breadth-first)
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(obj, i);
            if (child != null && child is TChildItem)
                return (TChildItem)child;
            else
            {
                var childOfChild = FindVisualChild<TChildItem>(child);
                if (childOfChild != null)
                    return childOfChild;
            }
        }
        return null;
    }