Mal*_*tek 5 c# maps windows-runtime winrt-xaml windows-phone-8.1
我有一个MapControl应该填充多个对象(500+).这些对象代表某种POI.当用户点击对象(图钉)时,我会显示有关POI的更多信息.所以,我需要:
MapControl能够处理子对象的高量Tapped子对象的事件为了实现第二个目标,我决定定义自己的图钉模板:
<maps:MapControl x:Name="Map">
<maps:MapItemsControl ItemsSource="{Binding Pushpins}">
<maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Image Width="40"
Height="40"
Source="{ ... }"
Tapped="OnPushpinTappedAsync"
maps:MapControl.Location="{Binding Location}"
maps:MapControl.NormalizedAnchorPoint="{Binding AnchorPoint}" />
</DataTemplate>
</maps:MapItemsControl.ItemTemplate>
</maps:MapItemsControl>
</maps:MapControl>
Run Code Online (Sandbox Code Playgroud)
除了事实之外......这种方法的视觉效果是AWFULL.每次我移动地图时,每次都会Pushpin闪烁很多.就像他们不是,我不知道,这个位置一定要受到约束.他们也落后了.看起来真的很糟糕.渲染这些对象真的很差.
另一种方法是将元素添加到所述MapControl的MapElements属性.它使这些对象的渲染非常好.但后来我失去了binding能力,必须解决它 - 我不是那个的忠实粉丝.还有第二个问题 - 从我所读到的,渲染集合的对象MapElements是一个尽力而为的交易.所以它不能保证它会成功.这对我来说不是一个选择,因为将来我计划添加群集功能,所以我需要完全控制地图上呈现的内容和不需要的内容.
你知道为什么这些MapControl元素会如此闪烁吗?我该怎么做才能防止它?提前感谢任何提示或答案.
小智 -1
尝试这个:
Tag="{Binding index_of_collection}"
Run Code Online (Sandbox Code Playgroud)
和这个:
OnPushpinTappedAsync()
int index = (int)(sender as Image).Tag; //index_of_collection
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1362 次 |
| 最近记录: |