千家信息网

Silverlight 2是怎么解决ListBox中一个Layout Bug

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本篇文章为大家展示了Silverlight 2是怎么解决ListBox中一个Layout Bug,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Silverli
千家信息网最后更新 2024年11月11日Silverlight 2是怎么解决ListBox中一个Layout Bug

本篇文章为大家展示了Silverlight 2是怎么解决ListBox中一个Layout Bug,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Silverlight自身还有没有问题? 谁也没法回答.

工作中遇到了一个关于ListBox的问题. 简单描述一下: 使用ListBox来显示某对象集合, 在排版的时候, 发现无论怎么调整ListBox的属性, 都无法让ListItem充满整个空间; 令人郁闷的是,ListItem中排放的TextBlock/TextBox总会根据自身文本的大小, 自动设定自己的长度; ListItem中的所有控件都自动向左对齐,造成了一副"甘特图"式的图像, 举例(姓名, 年龄, 邮件地址)如下:

在设置了浅蓝色的Border之后, 这个现象实在是太明显了!

按照MSDN的说法, 我们只需要在ListBox的属性中加入如下设定语句, 就会强制长度自动Fill了:

HorizontalContentAlignment="Stretch"
但是加入之后没有效果! 这显然是Silverlight 2的又一个bug.

我们可以在MSDN上看到ItemContainer的默认Style(你也可以从这里看: http://msdn.microsoft.com/en-us/library/cc278062%28vs.95%29.aspx):

   1: 


可以看出来, 值设置为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!

现在你可以看到这个运行结果了:

中间的年龄部分是可以随着窗体大小变化自动变化宽度的.

上述内容就是Silverlight 2是怎么解决ListBox中一个Layout Bug,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

属性 内容 问题 大小 年龄 技能 知识 空间 长度 变化 强制 明显 简明 郁闷 简明扼要 一行 中排 动向 图像 地址 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 购买云服务器选哪个系统 软件开发合同实验目的 服务器数据安全保障说明 linux 平台软件开发 肇庆安卓软件开发咨询 舟山数据网络技术咨询热线 智联网络技术有限公司广州 我的世界网易版小蜜蜂服务器指令 提供许可指令管理服务器 安徽芜湖网络技术有限公司电话 新疆大学网络安全 淘宝数据库安全性和完整性 数据库在服务器里面怎么安装 传统数据库管理技术的特征 网络安全协会宣传周 安徽淮南软件开发培训哪里好 网络安全领域的创新成果 湖北统一软件开发推广 ps4折腾服务器网站 国家认可的计算机数据库 安恒网络安全课程 2014年网络安全周在哪里举办 如何制作一个代理服务器 帝国时代4服务器连接关闭 介质网络技术 家用电脑装服务器系统 夷陵区大数据库五里局 云南省第四届网络安全攻防大赛 软件开发有哪些收入来源 莱阳ios软件开发推荐
0