2010-09-19 68 views

回答

0

为什么你不在MapItemsControl.ItemTemplate中添加一个隐藏式样式的按钮并使用单击按钮。

+0

是啊,我的问题已经“

+0

对我来说工作很不错。 – 2010-09-19 23:23:41

+0

添加一个不可见的按钮,当你有真正的事件,因为它似乎不必要 – MatthieuGD 2010-12-04 16:20:46

1

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> 
+1

我建议一个不可见的按钮,而不是操纵/ MouseDown是因为Button.Click是非常标准的用户体验,并且很容易让程序员来处理它。我需要我的事件才会触发一次,我有一个MouseDown + MouseUp这是一个Click :) – 2010-12-06 06:32:20

0

如果你想要的是能够点击/ 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 

} 
相关问题