WPF列表框自动换行

14

我有一个列表框,其中使用了一个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个回答

20
我试图使wrappanel的行为如下:当宽度变宽时,项目会填充到右侧,并根据需要进行换行。我已经尝试过,但正确的组合始终让我无法实现。有人有建议吗? 你所拥有的代码几乎是正确的,只需要将Orientation更改为Horizontal,它就可以按照你描述的那样工作。
我的下一个目标是能够重新排序/排序项目,并使渲染更新。 你不必为此做任何特殊处理,这是ListBox的常规行为。只需更改排序顺序(使用ICollectionView.SortDescriptions),UI将反映更改。

哦,是的 - 它有效。非常感谢。我必须说总的来说...这是最有帮助的网站之一。感谢所有人。 - Jeff

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接