2015-11-14 32 views
1

我在我的應用程序中使用了一個WPF Bing地圖,它的當前設置爲以某個緯度經度爲中心,我想知道是否可以顯示設置的緯度經度而不是一個文本框和搜索按鈕,用戶可以在其中輸入所選位置的緯度經度。如果是的話,我應該添加什麼代碼?WPF Bing地圖經緯度到文本框

的XAML

Title="MainWindow" Height="320.149" Width="475.746"> 
<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="0*"/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <m:Map CredentialsProvider="My Key" Mode="AerialWithLabels" 
      Center="51.521347, -0.138983" ZoomLevel="16" x:Name="BingMap" Grid.ColumnSpan="2"> 
     <TextBox x:Name="txtwhere" HorizontalAlignment="Left" Height="35" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="126" Margin="315,10,0,0" /> 
     <Button x:Name="Btnsearch" Content="Search" HorizontalAlignment="Left" Height="28" VerticalAlignment="Top" Width="112" Margin="316,57,0,0" Click="Btnsearch_Click"/> 

VB

Partial Public Class MainWindow 
Inherits Window 

Public Sub New() 
    InitializeComponent() 
    BingMap.Focus() 
    'Set map to Aerial Mode with labels 
    BingMap.Mode = New AerialMode(True) 
End Sub 

回答

1

你應該有更或更少了它,因爲你設置在XAML中的 「中心」。剛剛在C#中測試過,然後轉換爲VB。讓我知道,如果這是你要找的人(Btnsearch_Click處理您Btnsearch的Click事件):

Private Sub Btnsearch_Click(sender As Object, e As RoutedEventArgs) 
    Dim latitude As Double = Double.Parse(txtwhere.Text.Substring(0, txtwhere.Text.IndexOf(","C))) 
    Dim longitude As Double = Double.Parse(txtwhere.Text.Substring(txtwhere.Text.IndexOf(","C) + 1)) 

    BingMap.Center = New Microsoft.Maps.MapControl.WPF.Location(latitude, longitude) 
End Sub 

當然這個假設值是逗號分隔文本框和有效。最好編寫驗證以避免錯誤。