WPFに適さない方法でソリューションを実行していることに気付いた序文。完璧な世界では、MapItemsControlを使用します。
わかりました。WPFにBingMapsコントロールを使用しています。これが私のBingマップXAMLです
<m:Map CredentialsProvider="12345"
x:Name="myMap" UseInertia="True" Loaded="Map_Loaded"
Width="1920" Height="990" Canvas.Top="110" ZoomLevel="5" Center="39.8282,-98.5795">
<m:MapLayer x:Name="MyPushPinLayer">
<Canvas x:Name="ContentPopup" Visibility="Collapsed" Width="250">
<Border Background="White" BorderThickness="1" BorderBrush="Gray" Width="250" Padding="5">
<StackPanel Canvas.Left="20" Canvas.Top="10">
<TextBlock x:Name="ContentPopupText" FontSize="18" FontWeight="Bold" Foreground="#CF0000" Width="240" TextWrapping="Wrap">
</TextBlock>
<TextBlock x:Name="ContentAddress" FontSize="13" Foreground="Black" Width="240" TextWrapping="Wrap"/>
<TextBlock x:Name="ContentQuestions" FontSize="13" Foreground="Black" Width="240" TextWrapping="Wrap" />
</StackPanel>
</Border>
</Canvas>
</m:MapLayer>
</m:Map>
基本的に、これはマップを描画し、クリックしたときにツールチップ情報を保持するマップレイヤーがあります。背後にある私のコードでは、サービスからデータをプルし、次のようにマップに画鋲を手続き的に追加しています。
Pushpin pin = new Pushpin();
pin.Location = new Microsoft.Maps.MapControl.WPF.Location(location.latitude, location.longitude);
pin.Content = location.name;
pin.Template = LGPushPinTemplate;
pin.MouseDown += new MouseButtonEventHandler(pin_MouseDown);
myMap.Children.Add(pin);
かなり簡単です。ただし、マップが読み込まれた後、XAMLと子でポップアップレイヤーを定義しているため、画鋲は地図の子構造の最後に表示され、モーダルインフォボックスは画鋲の下に表示されます。マップの子コレクションからすべてを追加/削除せずに、これらのアイテムのzオーダーを再配置する方法はありますか?|