Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make WPF ListView items repeat horizontally, like a horizontal scrollbar?

I have a WPF ListView which repeats the data vertically. I cannot figure out how to make it repeat horizontally, like the slideshow view in Windows Explorer. My current ListView definition is:

<ListView ItemsSource="{StaticResource MyDataList}" ItemTemplate="{StaticResource ListViewTemplate}"> </ListView> 

The DataTemplate is (although I believe this should not matter);

                <Rectangle HorizontalAlignment="Stretch" Margin="0,1,0,0" x:Name="rectReflection" Width="Auto" Grid.Row="1" Height="30">                     <Rectangle.Fill>                         <VisualBrush Stretch="None" AlignmentX="Center" AlignmentY="Top" Visual="{Binding ElementName=imgPhoto}">                             <VisualBrush.RelativeTransform>                                 <TransformGroup>                                     <MatrixTransform Matrix="1,0,0,-1,0,0" />                                     <TranslateTransform Y="1" />                                 </TransformGroup>                             </VisualBrush.RelativeTransform>                         </VisualBrush>                     </Rectangle.Fill>                     <Rectangle.OpacityMask>                         <RadialGradientBrush GradientOrigin="0.5,1.041">                             <RadialGradientBrush.RelativeTransform>                                 <TransformGroup>                                     <ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.202" ScaleY="2.865"/>                                     <SkewTransform AngleX="0" AngleY="0" CenterX="0.5" CenterY="0.5"/>                                     <RotateTransform Angle="0" CenterX="0.5" CenterY="0.5"/>                                     <TranslateTransform X="-0.002" Y="-0.491"/>                                 </TransformGroup>                             </RadialGradientBrush.RelativeTransform>                             <GradientStop Color="#D9000000" Offset="0"/>                             <GradientStop Color="#01FFFFFF" Offset="0.8"/>                         </RadialGradientBrush>                     </Rectangle.OpacityMask>                 </Rectangle>             </Grid>         </Border>     </DataTemplate> 
like image 803
Ryan O'Neill Avatar asked Dec 11 '08 12:12

Ryan O'Neill


1 Answers

Set the ItemsPanel of the ListView to a horizontal StackPanel. Like this:

<ListView.ItemsPanel>     <ItemsPanelTemplate>         <StackPanel Orientation="Horizontal"></StackPanel>     </ItemsPanelTemplate> </ListView.ItemsPanel> 
like image 99
Boyan Avatar answered Sep 18 '22 13:09

Boyan