Xaml Listview Windows通用水平滚动模式

时间:2016-02-10 14:55:40

标签: c# xaml listview win-universal-app

我编写了一个列表,其中包含一个可观察集合的项目源,它是格子类型。因此列表视图包含4个项目(网格)。我希望网格彼此相邻,所以我在Xaml中试过这个。

 <StackPanel Orientation="Horizontal">
                <ListView  ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollMode="Enabled" ItemsSource="{Binding DropGrids, Source={StaticResource view}}" Height="100"  x:Name="DropList" RenderTransformOrigin="0.5,0.5" >
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal"></StackPanel>
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                </ListView>
                <AppBarButton Icon="MapPin" Label="Go!" HorizontalAlignment="Right"></AppBarButton>
            </StackPanel>

但是当我尝试向左滚动列表时,它会立即返回(如果你想模拟使用WGA分辨率4英寸仿真器),我就无法在屏幕上看到第四个网格。我该如何解决? 我从这篇文章得到的ListView.ItemsPanel属性: Stackoverflow Post - Horizontal Mode

1 个答案:

答案 0 :(得分:1)

不确定ListView项目源中的网格部分,但我在博客中写了如何在此处创建Horizo​​ntal ListView http://depblog.weblogs.us/2015/03/25/show-items-scrolling-horizontally-with-listview-in-winrt/

我希望这会有所帮助......

完整样式设置为

<Style x:Name="BaseListViewStyle" TargetType="ListView">
    <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Enabled" />
    <Setter Property="ScrollViewer.VerticalScrollMode" Value="Disabled" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"
                                    ScrollViewer.HorizontalScrollMode="Enabled"
                                    ScrollViewer.VerticalScrollMode="Disabled"/>
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
</Style>