2

私の最終的な目標は、WP7 アプリの Bing マップ上にカスタム イメージの画鋲を作成することです。コントロール テンプレートと画鋲付きのマップを作成しました。現在、デフォルトのプッシュピンを表示できますが、テンプレート化しようとすると何も表示されません。これが私が今持っているものです:

<phone:PhoneApplicationPage.Resources>
    <ControlTemplate x:Key="PushpinControlTemplate" TargetType="my:Pushpin">
        <Image Source="/Images/Pins/pin.png" />
    </ControlTemplate>
</phone:PhoneApplicationPage.Resources>

<my:Map Name="mapMain" CredentialsProvider="CredKey">
    <my:Pushpin/>
</my:Map>

PushpinControl テンプレートを適用すると、何も表示されません。

<my:Pushpin Template="{StaticResource BoaPushpinControlTemplate}" />

テンプレートを削除すると、デフォルトの黒い形状が表示されます。

テンプレートを間違って実行しているに違いありませんが、何が問題なのかわかりません。ControlTemplate に画像を含めることはできませんか?

4

2 に答える 2

1

マップでItemSourceバインディングを使用していない場合は、単純なコンテンツ制御アプローチを使用してください

   <maps:Pushpin Location="{Binding Location}">
            <Image Source="/Images/Pins/pin.png"   />
   </maps:Pushpin>

または、プッシュピンを動的に配置する場合は、以下のアプローチを使用してください

 <maps:Map x:Name="map" >
    <maps:MapItemsControl ItemsSource="{Binding Collection}">
        <maps:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <maps:Pushpin Location="{Binding Location}">
                    <Image Source="/Images/Pins/pin.png"   />
                </maps:Pushpin>
            </DataTemplate>
        </maps:MapItemsControl.ItemTemplate>
    </maps:MapItemsControl>
</maps:Map>
于 2011-01-11T02:28:45.857 に答える
1

このスレッドは少し古いですが、私の提案を投稿します。

このリンクを試してみてくださいWorking with Pushpins、それは私のために働いています(新しいスタイルを作成し、プッシュピン宣言で使用します)

(App.xaml、名前空間を忘れないでください! )

xmlns:m="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" >

<Application.Resources>    
    <Style TargetType="m:Pushpin" x:Key="PushpinStyle">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="m:Pushpin">
                    <Image Width="24" Height="24" Source="path_to_pic" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

(xamlにはマップがあります)

<Grid x:Name="LayoutRoot" Background="Transparent">
    <m:Map x:Name="Map" Mode="Aerial"
              CredentialsProvider="CredKey">
        <m:MapItemsControl x:Name="Content">
            <m:MapItemsControl.ItemTemplate>
                <DataTemplate>
                    <m:Pushpin Location="{Binding Location}" Style="{StaticResource PushpinStyle}" />
                </DataTemplate>
            </m:MapItemsControl.ItemTemplate>
        </m:MapItemsControl>
    </m:Map>
</Grid>

これが機能しない場合は、画像のビルド アクションがコンテンツに設定されているかどうかを確認してください。

これを理解するのにしばらく時間がかかったので、このスレッドが古いという事実にもかかわらず、誰かを助けることができれば幸いです. ;)

于 2011-11-21T14:28:44.227 に答える