WPF让ListView或ListBox中的WrapPanel 自动换行

原文: WPF让ListView或ListBox中的WrapPanel 自动换行

在ListView或者ListBox中使用WrapPanel想让ItemTemplate中的内容像下图这样先横向平铺然后再纵向换行,默认设置是不能实现的。


图1. 横向平铺再纵向换行的效果示例
  <ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <WrapPanel Orientation="Vertical" Margin="3" Background="{Binding DisabilityIndicator}">
                        <Image Source="{Binding Image}" Height="100" Width="100"  />
                        <TextBlock Text="{Binding Code}"   ToolTip="{Binding Code}" TextAlignment="Center" Width="100" TextTrimming="CharacterEllipsis" />
                        <TextBlock Text="{Binding Name}"  ToolTip="{Binding Name}" TextAlignment="Center" Width="100" TextTrimming="CharacterEllipsis" />
                    </WrapPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

请注意最关键的在上面代码中第一行的“ScrollViewer.HorizontalScrollBarVisibility="Disabled"”关掉横向滚动条和第四行的“Orientation="Horizontal"”使面板的平铺方向为横向。

达叔傻乐([email protected])

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/12709852.html