C# Bing WPF向图钉添加标签

C# Bing WPF向图钉添加标签,c#,wpf,xaml,bing,C#,Wpf,Xaml,Bing,我正在尝试将标签添加到图钉中,并尝试使用两种不同的方法将图钉添加到地图中 测试1来自xaml代码,我可以添加图钉,但我不知道如何添加文本 测试2来自C#代码,当我试图打开映射时,我得到一个错误“objectreference not set to a instance of a Object on the line”myMap.Children.Add(pin);" XAML代码: <Window x:Class="WPFKiosk.MapWindow" xmlns="ht

我正在尝试将标签添加到图钉中,并尝试使用两种不同的方法将图钉添加到地图中

测试1来自xaml代码,我可以添加图钉,但我不知道如何添加文本

测试2来自C#代码,当我试图打开映射时,我得到一个错误“objectreference not set to a instance of a Object on the line”myMap.Children.Add(pin);"

XAML代码:

<Window x:Class="WPFKiosk.MapWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

         xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPFKiosk"

        mc:Ignorable="d"
        Title="MapWindow" Height="910" Width="1080" WindowStyle="None" ResizeMode="NoResize">

    <!-- -->
    <Window.Resources>
        <ControlTemplate x:Key="PushpinControlTemplate" TargetType="m:Pushpin">
            <Image x:Name="pinImage" Height="64" Source="/Images/Push_Pin.png"/>
        </ControlTemplate>
    </Window.Resources>
    <Grid Width="1080" Height="915">

        <m:Map x:Name="myMap" CredentialsProvider="My_Key" Mode="Road">

            <m:Pushpin Location="28,-81"/>
            <!-- Test 1 -->
        </m:Map>

        <Image HorizontalAlignment="Left" Height="100" Margin="510,740,0,0" VerticalAlignment="Top" Width="100" Source="Images/iTO Back Arrow.png" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>

    </Grid>

</Window>

C#代码:

使用系统;
使用System.Windows;
使用System.Windows.Input;
使用System.Windows.Threading;
使用Microsoft.Maps.MapControl.WPF;
使用Microsoft.Maps.MapControl.WPF.Design;
使用Microsoft.Maps.MapControl.WPF.Core;
使用Microsoft.Maps.MapControl.WPF.Overlays;
使用System.Windows.Controls;
名称空间WPFKiosk
{
/// 
///MapWindow.xaml的交互逻辑
/// 
公共部分类映射窗口:窗口
{
私人调度员关闭计时器;
公共地图窗口()
{
图钉=新图钉();
销位置=新位置(28.5383,-81.3792);
pin.Content=“text”;
pin.Template=(ControlTemplate)(this.Resources[“PushpinControlTemplate”]);
myMap.Children.Add(pin);
//测试2
左=0;
这个.Top=0;
这个.Topmost=true;
初始化组件();
LocationConverter LocationConverter=新的LocationConverter();
//设置地图视图…也称为缩放级别和缩放中心
//需要一个位置坐标字符串
字符串OrlandoLoc=“28.5383,-81.3792,0.0”;
//然后将字符串转换为地图可以解释的位置
位置中心=(位置)locConverter.ConvertFrom(OrlandoLoc);
myMap.SetView(中,13);
closeTimer=新调度程序();
closeTimer.Interval=TimeSpan.FromMinutes(2);
closeTimer.Tick+=closeTimer\u Tick;
closeTimer.Start();
}
}
}

图钉是一个ContentControl,因此您可以添加任何您喜欢的内容:

<m:Pushpin Location="28,-81" Content="Hello"/>


或任何更复杂的内容,如

<m:Pushpin Location="28,-81">
    <Image Source="..."/>
</m:Pushpin>


调用
InitialiseComponent
时,将分配
myMap
变量。移动行
myMap.Children.Add(pin)
初始化组件之后
谢谢!当然就这么简单。这很有效,但您知道如何使文本不被压在pin内吗?您肯定需要一个不同的控件模板,即
。更好的可能是设置模板属性的默认图钉样式。
<m:Pushpin Location="28,-81">
    <TextBlock Text="Hello"/>
</m:Pushpin>
<m:Pushpin Location="28,-81">
    <Image Source="..."/>
</m:Pushpin>