WPF Bing 将经纬度映射到文本框
WPF Bing Maps latitude longitude to Textbox
我在我的应用程序中使用 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
自从您在 Xaml 中设置了 "Center" 后,您应该或多或少地弄明白了。刚刚在 C# 中对其进行了测试,然后将其转换为 VB。让我知道这是否是您要查找的内容(Btnsearch_Click 处理 Btnsearch 的点击事件):
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
当然,这假设文本框值以逗号分隔且有效。最好写验证以避免错误。
我在我的应用程序中使用 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
自从您在 Xaml 中设置了 "Center" 后,您应该或多或少地弄明白了。刚刚在 C# 中对其进行了测试,然后将其转换为 VB。让我知道这是否是您要查找的内容(Btnsearch_Click 处理 Btnsearch 的点击事件):
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
当然,这假设文本框值以逗号分隔且有效。最好写验证以避免错误。