2015-11-15 2 views
0

Вопрос 1Bing Maps канцелярской кнопки и Zoomin/Уменьшить

настоящее время у меня мой Bing Maps установить Но я хочу добавить увеличивать и уменьшать масштаб кнопок, на данный момент я нажать кнопку поиска и он принимает меня уровень масштабирования 17, мне было интересно, какие две строки кода мне нужно написать, чтобы добавить или отнять один от уровня масштабирования при каждом нажатии кнопки?

Вопрос 2

Я хотел бы также использовать булавку в моем приложении я могу создать простой один набор в центр в одном месте, но я хотел бы, чтобы это центр, когда новое положение применяется и остаться в то же самое место вместо того, чтобы прокручиваться, отключается от исходной точки с центром?

+0

Я считаю, что есть свойство ZoomLevel, которое является просто «двойным», вы можете просто увеличить или уменьшить это значение при нажатии кнопки. –

ответ

1

Вот простая панель навигации, которая содержит кнопки панорамирования и ползунок масштабирования:

<Grid HorizontalAlignment="Left" VerticalAlignment="Top" Height="290"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="30"/> 
     <ColumnDefinition Width="30"/> 
     <ColumnDefinition Width="30"/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="30"/> 
     <RowDefinition Height="30"/> 
     <RowDefinition Height="30"/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 

    <Button Content="&#8657;" Width="25" Height="25" Grid.Column="1" Tag="Up" Click="PanMap_Click"/> 
    <Button Content="&#8658;" Width="25" Height="25" Grid.Row="1" Grid.Column="2" Tag="Right" Click="PanMap_Click"/> 
    <Button Content="&#8659;" Width="25" Height="25" Grid.Row="2" Grid.Column="1" Tag="Down" Click="PanMap_Click"/> 
    <Button Content="&#8656;" Width="25" Height="25" Grid.Row="1" Tag="Left" Click="PanMap_Click"/> 

    <Slider Name="ZoomBar" Orientation="Vertical" Height="180" Width="20" Margin="10,10" Grid.ColumnSpan="3" Grid.Row="3" 
     HorizontalAlignment="Center" Minimum="1" Maximum="19" SmallChange="1"/> 
</Grid> 

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

<m:Map Name="MyMap" ZoomLevel="{Binding Value, ElementName=ZoomBar, Mode=TwoWay}"/> 

Вот код для панорамирования:

private void PanMap_Click(object sender, RoutedEventArgs e) 
{ 
    Button b = sender as Button; 
    Point p; 

    MyMap.TryLocationToViewportPoint(MyMap.Center, out p); 

    if (p != null) 
    { 
     switch (b.Tag as string) 
     { 
      case "Up": 
       p.Y -= 50; 
       break; 
      case "Down": 
       p.Y += 50; 
       break; 
      case "Left": 
       p.X -= 50; 
       break; 
      case "Right": 
       p.X += 50; 
       break; 
     } 

     Microsoft.Maps.MapControl.WPF.Location l; 
     MyMap.TryViewportPointToLocation(p, out l); 
     MyMap.SetView(l, MyMap.ZoomLevel); 
    } 
} 

Что вы имеете в виду под вопросом 2? Если вы добавите кнопку на карту, она должна оставаться на связи с указанной вами координатой, а не с центром карты, когда вы будете панорамировать, так как центр карты будет в другом месте. Вы просто хотите установить контроль над картой, которая не перемещается при панорамировании?

Смежные вопросы