UWP:在GridView

时间:2016-10-20 01:38:56

标签: c# gridview uwp scrollviewer uwp-xaml

我在GridView中遇到放大和缩小问题。实际上,缩放工作正常,但是,我无法向右移动。当我尝试向右平移时,它总是将其向左移动(平移顶部和底部工作正常)。

这是我的代码:

<ScrollViewer MinZoomFactor="1" ZoomMode="Enabled">
    <GridView x:Name="gvItems">
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid BorderThickness="1" BorderBrush="#cfcfcf">
                    <StackPanel Width="128" MaxWidth="128">
                        <Image Source="{Binding ImgPath}" Width="128" Height="128" Stretch="UniformToFill"></Image>
                        <Border BorderThickness="0 1 0 0" BorderBrush="#cfcfcf" Padding="5 0 5 0" Height="32">
                            <Viewbox StretchDirection="DownOnly">
                                <TextBlock Text="{Binding Name}" FontSize="16"></TextBlock>
                            </Viewbox>
                        </Border>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</ScrollViewer>

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

您需要在ScrollViewer中添加 VerticalScrollBarVisibility =“Auto” Horizo​​ntalScrollBarVisibility =“Auto”,然后将其内容设置为绑定到ScrollViewer的 ViewportWidth ViewportHeight

以下是代码:

<ScrollViewer x:Name="svList" MinZoomFactor="1" ZoomMode="Enabled" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
    <GridView x:Name="gvItems" Width="{Binding Path=ViewportWidth, ElementName=svList}" Height="{Binding Path=ViewportHeight, ElementName=svList}">
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid BorderThickness="1" BorderBrush="#cfcfcf">
                    <StackPanel Width="128" MaxWidth="128">
                        <Image Source="{Binding ImgPath}" Width="128" Height="128" Stretch="UniformToFill"></Image>
                        <Border BorderThickness="0 1 0 0" BorderBrush="#cfcfcf" Padding="5 0 5 0" Height="32">
                            <Viewbox StretchDirection="DownOnly">
                                <TextBlock Text="{Binding Name}" FontSize="16"></TextBlock>
                            </Viewbox>
                        </Border>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</ScrollViewer>

我希望这篇文章可以帮助那些发现自己处于类似情况的人。

干杯, 萨姆