これは、Silverlightに関するXAMLの質問です。
<Mobile:DevicePushpinTemplateSelector
m:MapLayer.Position="{Binding Location}"
ZoomLevel="{Binding ZoomLevel, ElementName=MainMap}"
Content="{Binding}">
<Mobile:DevicePushpinTemplateSelector.DotTemplate>
<DataTemplate>
<Ellipse Width="8" Height="8" Stroke="Black" Fill="{Binding IsGPSDataRecent, Converter={StaticResource BoolToGreenRedBrushConverter}}" StrokeThickness="1">
<ToolTipService.ToolTip>
<TextBlock Text="{Binding DisplayId}" />
</ToolTipService.ToolTip>
</Ellipse>
</DataTemplate>
</Mobile:DevicePushpinTemplateSelector.DotTemplate>
<Mobile:DevicePushpinTemplateSelector.NumberedTemplate>
<DataTemplate>
<Border x:Name="border" Background="{Binding IsGPSDataRecent, Converter={StaticResource BoolToGreenRedBrushConverter}}" BorderBrush="Black" BorderThickness="2" Padding="2" Height="20" CornerRadius="8">
<TextBlock VerticalAlignment="Center" Text="{Binding DisplayId}" />
</Border>
</DataTemplate>
</Mobile:DevicePushpinTemplateSelector.NumberedTemplate>
</Mobile:DevicePushpinTemplateSelector>
上記のXAMLには、マップのズームレベルに基づいた2つの異なるテンプレートがあります。ズームアウトすると楕円が小さくなり、ユーザーがズームアウトすると画鋲のサイズが大きくなります。
2つの問題:
画鋲がたくさんあるので本当に遅いですが、テンプレートの選択が原因だと思います。
違って欲しいです。「IsSelected」プロパティを作成して、すべての画鋲がすべてのズームレベルで同じになるようにしますが、ユーザーが画鋲をクリックするとサイズが拡大します。
「選択」部分をどのようにコーディングすればよいのでしょうか。一度に1つの画鋲だけを選択したい。プロパティにバインドして画鋲の部分を表示/非表示にすることはできますが、「選択」部分をコーディングする方法がわかりません。それはボタンである必要がありますか?