前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UWP基础教程 - {x:DeferLoadStrategy}

UWP基础教程 - {x:DeferLoadStrategy}

作者头像
陈仁松
发布2018-03-20 16:35:45
8410
发布2018-03-20 16:35:45
举报
文章被收录于专栏:陈仁松博客陈仁松博客

x:DeferLoadStrategy扩展标记是Windows10 UWP开发的新特性,这个特性可以用于优化启动性能,使用 x:DeferLoadStrategy=“Lazy” 会延迟元素及其子元素的创建,通过不需要创建元素减少启动时间和内存使用量。

但是使用该扩展标记每个元素会向添加600个字节的内存,你延迟的元素树越大,将节省的时间也就越多,不过内存占用也会有所增加。 所以如果你的应用性能太低,可以使用内存来换取性能。

讲了这么多,有的同学估计还是一头雾水,那么我们来看下实际的应用吧,在之前要让一个应用隐藏,之前也说过通常设置Visibility或者Opacity,但是不管用哪种方式,这些元素依然加载了,并且消耗了资源。

代码语言:javascript
复制
<Image x:Name='img1' Source="/Assets/imgs/001.jpg" Visibility="Collapsed"/>
<Image x:Name='img2' Source="/Assets/imgs/002.jpg" Opacity="0"/>

给元素添加上x:DeferLoadStrategy="Lazy"其实同样能达到不可见的效果

代码语言:javascript
复制
<Image x:Name='img3' Source="/Assets/imgs/003.jpg" x:DeferLoadStrategy="Lazy"/>  

使用该扩展标记,并不会将代码加入Xaml元素树,你必须在代码中使用this.FindName

代码语言:javascript
复制
private void RealizeElements_Click(object sender, RoutedEventArgs e)
{
    this.FindName("img3"); 
}

在使用FindName后该控件才能被正确的使用。

我们可以将x:DeferLoadStrategy用在哪些数据没ready的情况下不显示控件的场景,这样可以大大优化应用程序的性能。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档