首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使WPF ListView项像水平滚动条一样水平重复?

如何使WPF ListView项像水平滚动条一样水平重复?
EN

Stack Overflow用户
提问于 2008-12-11 12:43:04
回答 3查看 78K关注 0票数 74

我有一个垂直重复数据的WPF ListView。我不知道如何让它水平重复,就像Windows资源管理器中的幻灯片视图一样。我当前的ListView定义是:

代码语言:javascript
复制
<ListView ItemsSource="{StaticResource MyDataList}" ItemTemplate="{StaticResource ListViewTemplate}">
</ListView>

DataTemplate是(尽管我认为这无关紧要);

代码语言:javascript
复制
                <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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-11 13:54:21

将ListView的ItemsPanel设置为水平StackPanel。如下所示:

代码语言:javascript
复制
<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"></StackPanel>
    </ItemsPanelTemplate>
</ListView.ItemsPanel>
票数 205
EN

Stack Overflow用户

发布于 2011-11-06 02:01:58

也许更好的方法是使用VirtualizingStackPanel,它具有所有相同的属性,但性能更高,特别是对于包含许多项的列表框。

票数 11
EN

Stack Overflow用户

发布于 2016-07-06 10:29:02

我发现走这条路更容易

代码语言:javascript
复制
<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>

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/359217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档