关于视觉树优化的建议

本文深入探讨了在Windows8和WindowsPhone8开发中使用XAML时,如何通过合理选择容器布局来提高性能。特别强调了在水平或垂直排列时,使用StackPanel相较于Grid的优势,以及在已知控件尺寸情况下手动设置长宽的重要性。此外,文章还提出了删除重复默认属性、减少命名和简化DataTemplate等内容来进一步优化XAML表现的建议。以LazyListBox为例,展示了一种提高程序性能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Windows8 和WindowsPhone8的开发中,Xaml是一个利器!但是如果我们嵌套了N多层的Container,这个时候Xaml就会一个个地计算每一个Container的长宽位置,是很耗资源滴。

这里有几条建议可以提高xaml的performance:

1.如果要实现水平或垂直排列,并且没有特别的间距要求的话,应该用StackPanel代替Grid。

2.在事先知道控件大小的情况下,应该手动设置长宽,以避免不必要的计算。

3.如果控件的某个属性的默认值和你设置的值一样的话,delete掉,xaml读取默认值得速度比解析xaml的速度快。

4.减少对控件的命名,xaml会为已经被命名的控件分配可寻址对象,所以如果不在外部使用这个控件的话,就别命名了。

5.简化DataTemplate的内容,比如在使用ListBox时,用户滚动过程中可能根本不去看中间的某些Item,这个时候其实不需要去渲染这些Item。如果能够把那些没有显示,或者只是扫过的Item用别的Template代替的话可以提高我们程序的performance。大家可以看看这个玩意 LazyListBox

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值