2

Web サービス (場所、アイコン、タイトル) から取得したいくつかのマーカー/プッシュピンを含むマップを含む WP7 に iPhone アプリを移植しています。

マップを表示するために必要な 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 には、バブルを作成する同様のコントロールがないと推測しています。同様のものを作成するにはどうすればよいでしょうか?

前もって感謝します、

アレックス

4

4 に答える 4

4

Visibility="Collapsed" を使用して LayoutRoot 内に正方形の Border を配置するだけで、画鋲をクリックするとコンテンツが更新されて表示されます。

必ずマップ コントロールのに配置してください (そうしないと、マップの背後にレンダリングされ、結果として非表示になります)。

于 2010-11-23T09:22:20.890 に答える
2

これを実現する最も簡単な方法は、パフォーマンス上の考慮事項があるため、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;   
}
于 2012-06-22T09:43:14.813 に答える
1

カスタムポップアップを作成できます。

これを行う方法を説明する素晴らしいビデオは、ここにあります

于 2010-11-22T18:18:45.327 に答える
0

他の解決策は、Windows Phone 用の Silverlight ツールキットの ContextMenu を使用することです。CodePlexのCoding4Funページにアクセスしてダウンロードし (ツールキットが含まれています)、XAML の PushPin 定義内に以下を追加します。

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

このように、画鋲を長押しすると、contectmenu が表示されます。(良い例もここにあります: example )

于 2011-02-11T13:30:09.450 に答える