我正在尝试使用下面的代码在WP7 silverlight中创建一个水平列表框。这些项目是水平显示的,但滚动仍是垂直的。

我在wpf中做错了吗?这是WP7特定的错误吗?

    <Style TargetType="ListBox" x:Name="HorizontalListBox">
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal"
                                            IsItemsHost="True"
                                            CanHorizontallyScroll="True"
                                            CanVerticallyScroll="False"/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
    </Style>

编辑:我错过了似乎产生很大不同的两个属性。 (解决方案来自Mick N.接受的答案中的第二个链接。)
    <Style TargetType="ListBox" x:Name="HorizontalListBox">
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal" IsItemsHost="True" CanHorizontallyScroll="True" CanVerticallyScroll="False"/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled"/>
    </Style>

最佳答案

这里提出了两种解决方案,您可以尝试一下。

Horizontal Listbox?

How to write a control similar to ListBox, but sliding left to right instead of up and down

10-08 13:27