Ответ 1
Предлагаемые здесь два решения можно попробовать.
Как написать элемент управления, подобный ListBox, но скользящий слева направо, а не вверх и вниз
Я пытаюсь использовать приведенный ниже код, чтобы сделать горизонтальный список в 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>
Изменить: мне не хватало двух свойств, которые, похоже, сильно отличаются друг от друга. (Решение было получено из второй ссылки в принятом ответе Мика Н.)
<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>
Предлагаемые здесь два решения можно попробовать.
Как написать элемент управления, подобный ListBox, но скользящий слева направо, а не вверх и вниз
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" >
<ScrollViewer HorizontalScrollBarVisibility="Auto" Margin="0,6,-196,0" Height="Auto" Name="imageScroll">
<ListBox x:Name="imageBox" Margin="12,0,0,0">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation ="Horizontal" >
<StackPanel.RenderTransform>
<TranslateTransform
X="0" />
</StackPanel.RenderTransform>
</StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Avatar}" Width="240" Stretch="Fill" Height=" 100" />
<!--<TextBlock TextWrapping="Wrap" Text="{Binding Titulo}" FontSize="35" VerticalAlignment="Center" Margin="0,10" />-->
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
</Grid>
Это код, который работает для меня.
ОК, почти два года спустя, но код Mahantesh работал отлично для меня только с двумя дополнениями, отключив свойство VerticalScrollBar как в строке ScrollViewer, так и в строке ListBox, чтобы избежать того, чтобы ListBox все еще мог прокручивать вертикально
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Disabled"
Margin="0,6,-196,0"
Height="Auto" Name="imageScroll">
<ListBox x:Name="imageBox"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
Margin="12,0,0,0">