在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