我要在我的地图上的每个我的图钉内添加模板<Button>
控件,以便与用户点击(呃,触摸)图钉。这是使用图钉工作的正确方法吗?我不想处理MouseDown和MouseUp并重新创建所有内容(而且没有人应该)。我应该如何处理我的必应地图控件中的图钉上的点击事件WP7
我只需要确认。
我要在我的地图上的每个我的图钉内添加模板<Button>
控件,以便与用户点击(呃,触摸)图钉。这是使用图钉工作的正确方法吗?我不想处理MouseDown和MouseUp并重新创建所有内容(而且没有人应该)。我应该如何处理我的必应地图控件中的图钉上的点击事件WP7
我只需要确认。
为什么你不在MapItemsControl.ItemTemplate中添加一个隐藏式样式的按钮并使用单击按钮。
MouseLeftBUttonUp?我只有仿真器和它的作品在我的自定义图钉:
<Maps:MapItemsControl ItemsSource="{Binding Stores}">
<Maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Maps:Pushpin Location="{Binding Location}" MouseLeftButtonUp="Pushpin_MouseLeftButtonUp">
<Maps:Pushpin.Template>
<ControlTemplate TargetType="Maps:Pushpin">
<Border BorderBrush="Black" BorderThickness="1" Background="MintCream" Width="32" Height="32" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{Binding Store.Address}" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Maps:Pushpin.Template>
</Maps:Pushpin>
</DataTemplate>
</Maps:MapItemsControl.ItemTemplate>
</Maps:MapItemsControl>
编辑:得到一个真实的设备我测试了我的申请,我可以确认的MouseLeftButtonUp是一个坏主意(以及Microsoft不推荐后Performance tips)
,而不是你用前人的精力操作事件:
<Maps:MapItemsControl ItemsSource="{Binding Stores}">
<Maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Maps:Pushpin Location="{Binding Location}" ManipulationStarted="Pushpin_ManipulationStarted">
<Maps:Pushpin.Template>
<ControlTemplate TargetType="Maps:Pushpin">
<Image Width="48" Height="48" Source="{Binding InventoryIcon}" />
</ControlTemplate>
</Maps:Pushpin.Template>
</Maps:Pushpin>
</DataTemplate>
</Maps:MapItemsControl.ItemTemplate>
</Maps:MapItemsControl>
我建议一个不可见的按钮,而不是操纵/ MouseDown是因为Button.Click是非常标准的用户体验,并且很容易让程序员来处理它。我需要我的事件才会触发一次,我有一个MouseDown + MouseUp这是一个Click :) – 2010-12-06 06:32:20
如果你想要的是能够点击/ TAP每个图钉,一个的MouseLeftButtonUp事件添加到您创建的每个图钉。例如:
Microsoft.Phone.Controls.Maps.Pushpin pp = null;
System.Device.Location.GeoCoordinate loc = null;
pp = new Microsoft.Phone.Controls.Maps.Pushpin();
loc = new System.Device.Location.GeoCoordinate([Latitude], [Longitude]);
pp.Location = loc;
pp.Content = "Some Content";
pp.MouseLeftButtonUp += new MouseButtonEventHandler(Pushpin_MouseLeftButtonUp);
然后添加
void Pushpin_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Microsoft.Phone.Controls.Maps.Pushpin tempPP = new Microsoft.Phone.Controls.Maps.Pushpin();
tempPP = (Microsoft.Phone.Controls.Maps.Pushpin)sender;
// you can check the tempPP.Content property
}
是啊,我的问题已经“
对我来说工作很不错。 – 2010-09-19 23:23:41
添加一个不可见的按钮,当你有真正的事件,因为它似乎不必要 – MatthieuGD 2010-12-04 16:20:46