2011-10-26 16 views
2

私はWPF用のBing Mapsコントロールを試しています。これが私を怒らせています。WPF Bing Mapsコントロール - スケールバーユニットを変更する

組み込みのスケールバーにアクセスする方法がわからないので、単位をメートル法に変更できます。

新しいスケールバー、コンパスなどを追加できますが、デフォルトのものにはアクセスできません。

誰でもこれを行う方法はありますか?

答えて

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; 
    } 
2

古い質問ですが、もっと簡単な方法があります。メトリックを使用する国にマップのCultureプロパティを設定するだけです。

例:

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