1. 程式人生 > >WPF中的ListBox按塊顯示元素

WPF中的ListBox按塊顯示元素

注意:需要設定ListBox的屬性 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
關鍵程式碼,WPF中有內建的WrapPanel控制元件,在ListBox.ItemsPanel中使用可以讓元素按塊顯示
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel/>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>

***************************************************************************************************************

       <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>