上面是示意图,具体规则如下:1 窗口的大小由小Item(上图共有8个小图,小Item间的距离和小Item自身的大小是固定的)决定,这个问题我已经解决了。2 有几个Item界面上显示几个Item,当大于四个时,多出的自动往现有的上一行排列。不知道是否说清楚了~~这个界面应该使用哪些布局控件进行布局呢?WPF新手,请大家多多指点~~我目前只能把每个item用DataTemplate表示出来,但外面该用什么控件我搞不定~~绑定的数据源我准备用List。
调试欢乐多
正在学习,有别的方法吗,关键是每个小Item之间有固定的距离
想啥样有啥样
<ItemsControl Margin="5" ItemsSource="{Binding SymbolIDList,Mode=TwoWay}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<!--你的格子-->
<label/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding ColumnCount}" Rows="{Binding RowCount}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>你控制好行和列就行
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel HorizontalAlignment="{Binding HorizontalAlignment}" VerticalAlignment="{Binding VerticalAlignment}" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>控制WrapPanel的MaxWidth是4个Item即可,另外一个选择是UniformGrid
设置Columns=4也行
http://nonocast.cn/?p=2679不过因为需要ItemSource做Binding,所以采用ListBox做Logical Element,用UniformGrid/WrapPanel来做Visual ElementMay that helps.
WPF刚接触,绑定这块还没有把握~~帖子先结了,后面抽空我会用listview,WrapPanel,UniformGrid来分别实现。
到时候再另开贴分享。再次感谢各位的热心指点~~