2008-12-11 16 views
53

मेरे पास एक WPF ListView है जो डेटा को लंबवत रूप से दोहराता है। मैं विंडोज एक्सप्लोरर में स्लाइड शो दृश्य की तरह क्षैतिज रूप से दोहराने के तरीके को समझ नहीं सकता हूं। मेरी वर्तमान सूची दृश्य परिभाषा है:मैं WPF ListView आइटम क्षैतिज स्क्रॉलबार की तरह क्षैतिज दोहरा सकता हूं?

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

डेटा टेम्पलेट है (हालांकि मुझे विश्वास है कि इससे कोई फर्क नहीं पड़ता);

   <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> 

उत्तर

163

सेट ListView की ItemsPanel को एक क्षैतिज StackPanel।

<ListView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Horizontal"></StackPanel> 
    </ItemsPanelTemplate> 
</ListView.ItemsPanel> 
10

यह करने के लिए एक VirtualizingStackPanel जो एक ही गुण के सभी है, लेकिन बहुत अधिक performant विशेष रूप से आइटम के बहुत सारे के साथ listboxes के लिए है का उपयोग करने के होगा शायद एक बेहतर तरीका: इस तरह।

2

मैं यह आसान इस तरह से

<ItemsControl ItemsSource="{Binding Path=Steps}"> 
<ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <TextBlock Text="{Binding PageName}" Padding="10" /> 
    </DataTemplate> 
</ItemsControl.ItemTemplate>  
<ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <WrapPanel></WrapPanel> 
    </ItemsPanelTemplate> 
</ItemsControl.ItemsPanel> 

+0

जाना लेकिन एक WrapPanel कुछ समय लपेट हैं पाया? –

+0

जब तक यह सही सीमा तक नहीं पहुंच जाता है और बाएं से दाएं से दूसरी पंक्ति के रूप में जाता है – stenly