バージョン

値テンプレートの表示

xamMap コントロールはデータ テンプレートを使用して MapElement オブジェクトの外観をカスタマイズする機能を提供します。このテンプレートは、 MapLayer オブジェクトの ValueTemplate プロパティを使用してレイヤーに設定されます。テンプレート内に配置するコントロールは各マップ エレメントに配置されます。したがってこの機能を使用して xamMap のエレメントごとに任意の種類のカスタム情報を表示できます。さらに、値テンプレートを使用すると、各要素の Value プロパティにバインドすることができます。これによってカスタムな方法で値を表示することが非常にシンプルかつ簡単になります。

以下のコードはマップ 要素の情報を表示するためにテキストブロックを使用する方法を示します。

XAML の場合:

<igMap:XamMap x:Name="map1">
   <igMap:XamMap.Layers>
      <igMap:MapLayer x:Name="statesLayer">
         <igMap:MapLayer.Reader>
            <igMap:ShapeFileReader Uri="/../../Shapefiles/usa_st" DataMapping="Caption=STATE_ABBR; Value=POP90_SQMI" />
         </igMap:MapLayer.Reader>
         <!-- Value Template を使用して TextBlock で Value を表示します -->
         <igMap:MapLayer.ValueTemplate>
            <DataTemplate>
				<StackPanel Orientation="Horizontal" >
					<TextBlock Margin="2" Text="{Binding Value}"
					Foreground ="White" FontWeight="Bold" FontSize="15"
					HorizontalAlignment="Center" VerticalAlignment="Center" >
						<TextBlock.Effect>
							<DropShadowEffect ShadowDepth="1" BlurRadius="10"/>
						</TextBlock.Effect>
					</TextBlock>
					<StackPanel Orientation="Vertical" VerticalAlignment="Center">
						<TextBlock Text="people" FontSize="10" />
						<Rectangle Height="0.5" Fill="Black" HorizontalAlignment="Stretch"></Rectangle>
						<TextBlock Text="sqmi" FontSize="10" />
					</StackPanel>
				</StackPanel>
			</DataTemplate>
         </igMap:MapLayer.ValueTemplate>
      </igMap:MapLayer>
   </igMap:XamMap.Layers>
</igMap:XamMap>
SL DV XamMap Customize XamMap with Value Templates 01.png