如何让ItemsControl垂直包裹和水平滚动



我可以使用这样的ListView来做到这一点。

<ListView ItemsSource="..."
    ScrollViewer.HorizontalScrollBarVisibility="Auto"
    ScrollViewer.HorizontalScrollMode="Auto"
    ScrollViewer.VerticalScrollBarVisibility="Disabled"
    ScrollViewer.VerticalScrollMode="Disabled"
    ScrollViewer.ZoomMode="Disabled"
    SelectionMode="None">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <callistoControls:WrapPanel Orientation="Vertical" />
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
        <DataTemplate>
            <Button Content="{Binding Title}" Command="..." CommandParameter="..."  />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我不需要ListView的所有功能。我宁愿只是项目ItemsControl,而不是通过重新做模板/等来关闭ListView中所有不需要的功能。

如何使用ItemsControl实现此目标?

你可以这样做:

<ScrollViewer 
    HorizontalScrollBarVisibility="Auto"
    HorizontalScrollMode="Auto"
    VerticalScrollBarVisibility="Disabled"
    VerticalScrollMode="Disabled"
    ZoomMode="Disabled">
    <ItemsControl ItemsSource="...">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <callistoControls:WrapPanel Orientation="Vertical" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>
祝你好运。

最新更新