我正在使用大量的对象(POI)来显示MapControl.我正在帮助自己使用MVVM Light来遵守MVVM方法的规则.
由于我有义务在地图上显示每个对象,我必须使用MapItemsControl集合,而不是MapElements一个.此集合绑定到对应的ObservableCollection<PushpinViewModel>object(Pushpins)ViewModel.当我想要刷新时,一切都按预期工作,直到现在Pushpins.问题是内存泄漏.但首先,一些代码可视化问题:
XAML:
<maps:MapControl x:Name="Map"
x:Uid="MapControl">
<maps:MapItemsControl ItemsSource="{Binding Pushpins}">
<maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Image}"/>
</DataTemplate>
</maps:MapItemsControl.ItemTemplate>
</maps:MapItemsControl>
Run Code Online (Sandbox Code Playgroud)
MainViewModel:
public class MainViewModel : ViewModelBase
{
public RelayCommand AddCommand { get; set; }
public RelayCommand ClearCommand { get; set; }
public RelayCommand CollectCommand { get; set; }
public ObservableCollection<PushpinViewModel> Pushpins { get; set; }
/* Ctor, initialization of Pushpins and stuff like that */
private void Collect() …Run Code Online (Sandbox Code Playgroud) c# memory-leaks observablecollection windows-phone-8 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元素会如此闪烁吗?我该怎么做才能防止它?提前感谢任何提示或答案.
我正在寻找一种方法来添加Drop Shadow Effect到我的Windows Phone 8.1 Runtime(不是Silverlight!)应用程序中的多种元素.主要问题是......它没有正式的API.主要的问题是我需要模仿这种效果,不仅是基本的形状(如矩形或线条),还有一个路径,就像这里:

图片是从这个问题借来的:路径与破坏阴影效果 - 我希望主人不介意;)现在,他已经实现了这个效果,因为它是在WPF中完成的.我正在使用通用应用程序(所以WinRT),并且没有效果扩展.
我多次搜索网页,发现了某种解决方法,但他们都错过了一些东西.例如这一个:
http://www.silverlightshow.net/items/Simple-Xaml-Drop-Shadows-in-Silverlight-2.aspx < - 我无法继续工作Canvas,内容必须是一个Grid.
您知道如何在Windows Phone 8.1 Runtime中伪造投影效果时获得令人满意的效果吗?
案例非常简单:FontWeight的属性TextBlock在Universal Store App中不起作用.我已经创建了示例项目(Universal App),并在WindowPhone中MainPage添加了TextBlock样式:
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize=20
FontWeight="Thin"
Text="Test text should be thin in runtime." />
Run Code Online (Sandbox Code Playgroud)
在设计器中,一切看起来都很好,但是当我在模拟器/设备上部署应用程序时,测试文本不会变薄!这是正常的.看看截图:

正如您所看到的,在设计师中,文字非常薄(它很漂亮!).但是在运行模拟器中,文本的重量是正常的.为什么?我该如何解决它?在此先感谢您的帮助.