Управление картами WPF Bing - изменение единиц шкалы - PullRequest
2 голосов
/ 27 октября 2011

Я пробую элемент управления Bing Maps для WPF, и это сводит меня с ума.

Я не могу понять, как получить доступ к встроенной шкале, чтобы я мог изменить единицы измерения на метрические.

Я могу просто добавить новую шкалу, компас и т. Д., Но не могу получить доступ к стандартной.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

4 голосов
/ 21 июля 2014

Старый вопрос, но есть гораздо более простой способ сделать это. Просто установите свойство Культура на карте для страны, которая использует метрику.

например:

<m:Map 
  x:Name="MapObject" 
  CredentialsProvider="YOUR_KEY" 
  Center="-38.1231102,145.2116017" 
  ZoomLevel="11"  
  Mode="Aerial" 
  Culture="en-au"
/>
1 голос
/ 02 ноября 2011

Вот, пожалуйста, приятель. Кредит идет тому, кто опубликовал метод 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;
    }
...