2015-11-03 78 views
0

我想创建一个listview,其中包含一些项目。 每个项目都有一个特定的大小(全部相同)并且可点击。如何在一行上的ListView上停止溢出

我已经创建了列表视图,但是一旦达到了列表视图的最大宽度尺寸,它就会换行并进入第二行。我想有一个水平滚动条和我的所有项目在一行上。

对于为例,我有5个项目,但它显示:

enter image description here

我想有水平滚动条可以看到第五。

这里是我的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> 
+0

刚刚有了一个快速浏览一下,你肯定ü要WrapPanel? – Muds

+0

我可以改变这一点,至于它做什么,我需要:) – carndacier

+0

使它堆叠面板,看到它它使任何差异 – Muds

回答

2

你可以用面板改变的StackPanel

<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> 

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