小编Mal*_*tek的帖子

使用ObservableCollection的Windows Phone 8.1 WinRT内存泄漏

我正在使用大量的对象(PO​​I)来显示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

6
推荐指数
1
解决办法
1858
查看次数

Windows Phone 8.1 Runtime中具有多个子节点的MapControl性能很差

我有一个MapControl应该填充多个对象(500+).这些对象代表某种POI.当用户点击对象(图钉)时,我会显示有关POI的更多信息.所以,我需要:

  1. 一个MapControl能够处理子对象的高量
  2. 拦截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闪烁很多.就像他们不是,我不知道,这个位置一定要受到约束.他们也落后了.看起来真的很糟糕.渲染这些对象真的很差.

另一种方法是将元素添加到所述MapControlMapElements属性.它使这些对象的渲染非常好.但后来我失去了binding能力,必须解决它 - 我不是那个的忠实粉丝.还有第二个问题 - 从我所读到的,渲染集合的对象MapElements是一个尽力而为的交易.所以它不能保证它会成功.这对我来说不是一个选择,因为将来我计划添加群集功能,所以我需要完全控制地图上呈现的内容和不需要的内容.

你知道为什么这些MapControl元素会如此闪烁吗?我该怎么做才能防止它?提前感谢任何提示或答案.

c# maps windows-runtime winrt-xaml windows-phone-8.1

5
推荐指数
1
解决办法
1362
查看次数

Windows Phone 8.1 Runtime中的阴影效果?

我正在寻找一种方法来添加Drop Shadow Effect到我的Windows Phone 8.1 Runtime(不是Silverlight!)应用程序中的多种元素.主要问题是......它没有正式的API.主要的问题是我需要模仿这种效果,不仅是基本的形状(如矩形或线条),还有一个路径,就像这里:

取自问题/ 4519243/path-with-broken-shadow-effect

图片是从这个问题借来的:路径与破坏阴影效果 - 我希望主人不介意;)现在,他已经实现了这个效果,因为它是在WPF中完成的.我正在使用通用应用程序(所以WinRT),并且没有效果扩展.

我多次搜索网页,发现了某种解决方法,但他们都错过了一些东西.例如这一个:

http://www.silverlightshow.net/items/Simple-Xaml-Drop-Shadows-in-Silverlight-2.aspx < - 我无法继续工作Canvas,内容必须是一个Grid.

您知道如何在Windows Phone 8.1 Runtime中伪造投影效果时获得令人满意的效果吗?

c# xaml dropshadow windows-runtime windows-phone-8.1

3
推荐指数
1
解决办法
4813
查看次数

FontWeight属性不起作用[Windows Phone 8.1运行时]

案例非常简单: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)

在设计器中,一切看起来都很好,但是当我在模拟器/设备上部署应用程序时,测试文本不会变薄!这是正常的.看看截图:

来自VS2013的SS

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

c# xaml textblock windows-runtime windows-phone-8.1

3
推荐指数
1
解决办法
498
查看次数