WPF Listbox Wrapping

时间:2010-11-09 22:56:39

标签: wpf xaml listbox wrappanel

我有一个列表框,我使用ListBox.ItemsPanel - WrapPanel。

<ListBox ItemsSource="{Binding Path=Applets}" Margin="10,92,10,10" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >

        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>

                <WrapPanel Orientation="Vertical" IsItemsHost="True">

                </WrapPanel>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>



        <ListBox.ItemTemplate>...

我试图让wrappanel有一个行为,当宽度变宽时,项目会填充到右侧,当窗口变窄时,根据需要进行包装。我玩过它但正确的组合让我失望。有没有人有建议?

我的下一个目标是能够重新排序/排序项目并进行渲染更新。

TIA

2 个答案:

答案 0 :(得分:17)

  

我试图让wrappanel有一个行为,当宽度变宽时,项目会填充到右侧,当窗口变窄时,根据需要进行包装。我玩过它但正确的组合让我失望。有没有人有建议?

您拥有的代码几乎是正确的,只需将Orientation更改为Horizontal即可按照您的描述进行操作

  

我的下一个目标是能够重新排序/排序项目并进行渲染更新。

您不必为此做任何特别的事情,这是ListBox的正常行为。只需更改排序顺序(使用ICollectionView.SortDescriptions),UI就会反映更改

答案 1 :(得分:0)

                <ListBox Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
                <ListBoxItem Name="lbiTmp3_1"><CheckBox>
                        <TextBlock TextWrapping="Wrap">
                        lkjfd gmlkdsfmlk gmdsgf  kds lkjglfdjmlkg jfdsg dsgf lkhfdgs lkjds fg
                    </TextBlock></CheckBox>
                </ListBoxItem>
                <ListBoxItem Name="lbiTmp3_2">C0ucou</ListBoxItem>
                <ListBoxItem Name="lbiTmp3_3">C0ucou</ListBoxItem>
            </ListBox>