C# 如何在一行上阻止ListView溢出

C# 如何在一行上阻止ListView溢出,c#,wpf,xaml,listview,C#,Wpf,Xaml,Listview,我想创建一个listview,其中包含一些项目。 每个项目都有一个特定的大小(所有项目都相同),可以单击 我已经创建了listview,但是一旦我达到listview的最大宽度大小,它就会在第二行上进行包装。我想有一个水平滚动条和我的所有项目在一行 例如,我有5项,但它显示: 我想有水平滚动条,能够看到第五个 以下是我的xaml代码: <ListView Background="#1A1A1A" HorizontalAlignment="Stretch" Margin="10,0,10,

我想创建一个listview,其中包含一些项目。 每个项目都有一个特定的大小(所有项目都相同),可以单击

我已经创建了listview,但是一旦我达到listview的最大宽度大小,它就会在第二行上进行包装。我想有一个水平滚动条和我的所有项目在一行

例如,我有5项,但它显示:

我想有水平滚动条,能够看到第五个

以下是我的xaml代码:

<ListView Background="#1A1A1A" HorizontalAlignment="Stretch" Margin="10,0,10,0" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Auto" Height="100" ItemsSource="{Binding Projects}" SelectionChanged="ListView_SelectionChanged">
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal" Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
                                ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}"
                                MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
                                ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Border BorderBrush="#CCCCCC" BorderThickness="1">
                        <StackPanel Orientation="Horizontal" Height="100" Width="200">
                            <TextBlock Height="100" Width="200" FontSize="20" Padding="0,25,0,0" TextAlignment="Center" Foreground="#1A1A1A" Background="{Binding BackgroundColor}" Text="{Binding Title}" />
                        </StackPanel>
                    </Border>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

您可以将包裹面板更改为堆叠面板

<ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal" Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
                            ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}"
                            MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
                            ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}" />
            </ItemsPanelTemplate>



我只是快速浏览了一下,你确定你想要WrapPanel吗?我可以改变它,只要它能满足我的需要:)让它成为堆栈面板,看看它能让我有多蠢。。。复制/粘贴不好。:)谢谢你,伙计@泥马鞍你岩石!!!我试图找出这一个lol的问题是什么。最好把它作为一个答案来发布,以赢得一些分数
<ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
                            MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}" />
            </ItemsPanelTemplate>