WPF中这样的效果需要用什么控件来呈现?内附图片
1 如上图所示,每一行是一组,每一组最前面的是这个组的标题,标题后面的暂称为成员。
每一组的成员数目不等,且动态变化。
2 这个整体由一组一组的数据组成。
大家给指点一下,这个在WPF中该用什么控件来呈现?
[解决办法]
ListBox
自己写Item的模板
[解决办法]
写个自定义控件,
因为每个小组件大小、间距等都一样,
写起来很容易,
数据源用List<T>等可变大小的集合,
再用代码遍历集合动态创建就行了
[解决办法]
这样的话,首先你得数据源的结构是什么呢?我的想法:
class Item
{
Title 属性;
ICollection<Child>集合属性;
}
每个Item代表你说的一组。
然后最外面一层当然是个ListBox,这个ListBox的ItemsSource绑定到一个ICollection<Item>
那么这个ListBox的controltemplate要自己改了。
- XML code
<ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> 自己改模板
[解决办法]
边框线是各自带线,如果你说的不是那种效果,那么就应该是DataGrid里面的分割线了,你可以考虑直接使用DataGrid来实现,也是做得到的,而且那线条应该就是你说的效果。
[解决办法]
不一定非要用线,隔行渐变也不错
[解决办法]
想加线很容易。
把原来的存放title 和 children的stackpanel换成Grid.
两行两列。
第一行分别放原来的title 和 children.
第二行列合并,放一条线即可。
[解决办法]
我是通过PART_Name来实现的
内部的ListBox
- XML code
<ListBox Name="PART_Children" ItemContainerStyle="{StaticResource fileItemStyle}" Style="{StaticResource listboxFileStyle}" Grid.Row="1" ItemsSource="{Binding Children}" />