本文实例讲述了WPF中的ListBox实现按块显示元素的方法。分享给大家供大家参考,具体如下:
注意:需要设置ListBox的属性 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
关键代码,WPF中有内置的WrapPanel控件,在ListBox.ItemsPanel中使用可以让元素按块显示
1
2
3
4
5
|
< ListBox.ItemsPanel >
< ItemsPanelTemplate >
< WrapPanel />
</ ItemsPanelTemplate >
</ ListBox.ItemsPanel >
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
< ListBox Height = "304" HorizontalAlignment = "Left" Margin = "14,143,0,0" Name = "lstTables" VerticalAlignment = "Top" Width = "615" ScrollViewer.HorizontalScrollBarVisibility = "Disabled" >
< ListBox.ItemsPanel >
< ItemsPanelTemplate >
< WrapPanel />
</ ItemsPanelTemplate >
</ ListBox.ItemsPanel >
< ListBox.ItemTemplate >
< DataTemplate >
< Grid Margin = "20,20,20,20" >
< Grid.RowDefinitions >
< RowDefinition ></ RowDefinition >
< RowDefinition ></ RowDefinition >
< RowDefinition ></ RowDefinition >
</ Grid.RowDefinitions >
< Image Source = "Images/table.png" Grid.Row = "0" Height = "42" Width = "42" HorizontalAlignment = "Center" >
< Image.Effect >
< DropShadowEffect />
</ Image.Effect >
</ Image >
< TextBlock Text = "{Binding FTableName,Mode=TwoWay}" Grid.Row = "1" HorizontalAlignment = "Center" Margin = "5,5,5,5" />
< CheckBox IsChecked = "{Binding FSelected,Mode=TwoWay,Converter={StaticResource SelCTS}}" Grid.Row = "2" HorizontalAlignment = "Center" >
< CheckBox.Effect >
< DropShadowEffect />
</ CheckBox.Effect >
</ CheckBox >
</ Grid >
</ DataTemplate >
</ ListBox.ItemTemplate >
</ ListBox >
|