WP7 图钉工具提示/气泡
-
27-09-2019 - |
题
我正在将一个 iPhone 应用程序移植到 WP7,其中包含一张带有多个标记/图钉的地图,这些标记/图钉是我从网络服务获取的(位置、图标和标题)。
我已经设置了显示地图所需的 XAML 以及图钉的一些代码:
<phone:PhoneApplicationPage.Resources>
<ControlTemplate x:Key="customPushpin" TargetType="my:Pushpin">
<Image Height="39" Source="Resources/Icons/Pushpins/pinGreen.png" Stretch="Fill" Width="32"/>
</ControlTemplate>
</phone:PhoneApplicationPage.Resources>
<Grid x:Name="LayoutRoot" Background="Transparent">
<my:Map Height="Auto" HorizontalAlignment="Stretch" Margin="0" x:Name="Map"
VerticalAlignment="Stretch" Width="Auto" CredentialsProvider="{Binding CredentialsProvider}"
CopyrightVisibility="Collapsed" LogoVisibility="Collapsed" Center="{Binding Mode=TwoWay, Path=Center}"
ZoomBarVisibility="Visible"
ZoomLevel="{Binding Zoom, Mode=TwoWay}">
<my:MapItemsControl ItemsSource="{Binding Pushpins}">
<my:MapItemsControl.ItemTemplate>
<DataTemplate>
<my:Pushpin MouseLeftButtonUp="Pushpin_MouseLeftButtonUp"
Location="{Binding Location}"
Template="{StaticResource customPushpin}">
</my:Pushpin>
</DataTemplate>
</my:MapItemsControl.ItemTemplate>
</my:MapItemsControl>
</my:Map>
</Grid>
我正在寻找一种在用户单击图钉时添加某种气泡的方法。我已经研究了一些信息框/工具提示,但由于它们在悬停时工作,所以这不是我可以在手机上使用的东西(点击/单击)。
我猜 WP7 中没有类似的控件可以创建气泡 - 我怎样才能创建类似的东西?
提前致谢,
亚历克斯
解决方案
您可以简单地把一个正方形边框内LayoutRoot能见度=“坍塌”,那么当您单击图钉更新其内容,并使其可见。
只要确保把它的之后的地图控制(否则会被地图背后呈现的,将因此是不可见的)。
其他提示
,以实现这一点的最简单的方法是将显示/隐藏因为一些性能考虑的图钉上点击而不是的MouseLeftButtonUp的内容。
void pushPin_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
this.border.Visibility = System.Windows.Visibility.Visible;
//stop the event from going to the parent map control
e.Handled = true;
}
private void map_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
this.border.Visibility = System.Windows.Visibility.Collapsed;
}
您可以创建自定义弹出窗口。
一个很棒的视频解释了如何执行此操作,位于 这里.
其他解决方案是使用 Windows Phone Silverlight 工具包中的 ContextMenu!只需前往 编码乐趣 CodePlex 页面并下载它(它包含工具包)并在 PushPin 定义内的 XAML 中添加以下内容:
<map:Pushpin x:Name="currentLocation">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu IsZoomEnabled="False">
<toolkit:MenuItem Header="this is menu item 1" Click="MenuItem_Click" />
<toolkit:MenuItem Header="this is menu item 2" Click="MenuItem_Click" />
<toolkit:MenuItem Header="this is menu item 3" Click="MenuItem_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu></map:Pushpin>
这样,当您点击并按住图钉时,您将获得连接菜单!(这里也找到了很好的例子: 例子 )
不隶属于 StackOverflow