Silverlight 2 : 关于ListBox的一个Layout Bug及其解决方法
2009-03-04 11:58:41 来源:WEB开发网可以看出来, 值设置为Left的属性仅有2个:
第3行 HorizontalContentAlignment
第50行 HorizontalAlignment
问题出在了第50行的这个Left, 它默认将一个List Item中的所有内容都按照想做对齐的方式排列. 由于这个style已经写在了Silverlight Runtime内, 所以我们只能重写这个Style去掉这一行并为ListBox指定新的Style.
解决方法:
为ListBox添加属性 HorizontalContentAlignment="Stretch", 强制Fill
在App.xaml中添加命名空间: xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
在App.xaml中添加去掉了HorizontalAlignment="Left"的Style, 并给它的key命名为ListBoxItemContainerStyle --- x:Key="ListBoxItemContainerStyle"
为ListBox添加属性 ItemContainerStyle="{StaticResource ListBoxItemContainerStyle}, 指定用户自定义Style
Done!
现在你可以看到这个运行结果了:
图片看不清楚?请点击这里查看原图(大图)。
中间的年龄部分是可以随着窗体大小变化自动变化宽度的.
从这里学习如何为已有控件自定义style: Customizing the Appearance of an Existing Control by Creating a ControlTemplate
Silverlight的前辈们请手下留情, 但愿我不是井底之蛙! 希望本文能帮助那些和我一样的后来人.
文章来源:http://www.cnblogs.com/sun/archive/2009/03/04/1402648.html
Tags:Silverlight 关于 ListBox
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接