如何在WinRT中的ListView中启用水平滚动

时间:2016-03-05 16:42:42

标签: listview scrollview winrt-xaml

我正在创建一个Windows 8.1应用程序,我有一个列表视图,其中每一行都可以超出屏幕限制。我希望允许使用在行宽时左右滚动,但在显式设置其属性时,我似乎无法让水平滚动查看器显示事件。

    <ListView
        ItemsSource="{Binding AllColors}"
        ScrollViewer.HorizontalScrollBarVisibility="Visible"
        ScrollViewer.HorizontalScrollMode="Enabled"
        > 
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="Width" Value="3600"/>
                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.ItemTemplate>
            <DataTemplate>
                <Rectangle Height="100">
                    <Rectangle.Fill>
                        <LinearGradientBrush>
                            <GradientStop Offset="0" Color="Black"/>
                            <GradientStop Offset="0.5" Color="{Binding}"/>
                            <GradientStop Offset="1" Color="White"/>
                        </LinearGradientBrush>
                    </Rectangle.Fill>
                </Rectangle>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

出现水平滚动条,但它不允许滚动(好像不需要......),而它内部的项目比屏幕宽得多。

有办法吗?

1 个答案:

答案 0 :(得分:0)

将这些设置为自动应该足够了

ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollMode="Auto"

也许您的ListView托管在横向StackPanel或其他ScrollViewer中?