Gridview滚动口吃

时间:2012-11-29 13:50:26

标签: xaml gridview windows-8 visual-studio-2012

我一直在试验Windows 8和Visual Studio 2012 express,但我无法实现目标。

我一直在尝试创建一个水平扩展的瓷砖网格(很像'开始'屏幕)。
这些项目是在运行时添加的,虽然水平滚动有效,但这还不够好 当使用我的触摸板时,它似乎会在平板电脑上剪切,这会让人觉得迟钝 用光标滚动似乎很好。

我想知道如何通过使用XAML给它一个顺畅的体验,不幸的是我还不是很擅长(还)。

XAML :( stackpanel应该没有意义,但我正在尝试)

<Grid Background="White" ScrollViewer.HorizontalScrollBarVisibility="Visible">
    <Grid.RowDefinitions>
        <RowDefinition Height="19*"/>
        <RowDefinition Height="109*"/>
    </Grid.RowDefinitions>
    <StackPanel x:Name="stackPanel1" HorizontalAlignment="Left" Height="622" Margin="97,93,0,0" VerticalAlignment="Top" Width="0" Orientation="Horizontal" Grid.RowSpan="2"/>
    <GridView x:Name="gridView1" ItemTemplate="{StaticResource Standard250x250ItemTemplate}" Margin="0,0,0,0" Background="Red" Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Hidden"/>
    <Image HorizontalAlignment="Left" Height="90" Margin="1206,11,0,0" VerticalAlignment="Top" Width="106" Source="Assets/SmallLogo.png"/>
</Grid>

1 个答案:

答案 0 :(得分:0)

不是100%确定这是否是您所面临的问题,但可能会有所帮助: 默认情况下,GridView的ItemsTemplatePanelVirtualizingStackPanel。如果您的GridView中没有很多项目,那么GridView的滚动确实看起来很糟糕。

尝试将ItemsPanelTemplate设置为StackPanel而不是VirtualizingStackPanel(除非您坚持要求您的控件GridView虚拟化其项目。)

<GridView.ItemsPanel>
<ItemsPanelTemplate>
    <StackPanel Width="Auto" 
            HorizontalAlignment="Left" 
            Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>

希望这有帮助!