今天在Silverlight上遇到了个麻烦事。 重写了ListBox的ItemsPanel后,用WrapPanel来做容器,目的是想让子元素能够根据listbox的宽度自动换行布局。
开始只有设置listbox的宽度或者wrapPanel的宽度才可以自动完成换行布局,尝试了很多方式总是不能在不设置宽度的情况下完成理想的布局样式。
尝试了很久,开始想用binding的方法,用了各种binding了,呵呵,对binding还是很熟悉的,可惜都不熟悉。
终于找到方法了,很简单,后来想想也应该是这样的。想让Wrappanel完成自动布局,那么就得让自动的方向的尺寸要固定,那么在我这里怎么做呢?就是固定Listbox的宽度,这里就有一个问题了,listbox默认情况下是可以有横向和纵向滚动条的,所以它里面的内容不受他外在宽度的影响。
想到这里我们应该知道如果解决了,那就是设置
ScrollViewer.HorizontalScrollBarVisibility = "Disabled"
这样我们就可以控制宽度了