【问题标题】:UWP: Zoom In/Out in GridViewUWP:在 GridView 中放大/缩小
【发布时间】:2016-10-20 01:38:55
【问题描述】:

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

有什么想法吗?

谢谢

【问题讨论】:

    标签: c# gridview uwp scrollviewer uwp-xaml


    【解决方案1】:

    我找到了解决办法。

    您需要在 ScrollViewer 中添加 VerticalScrollBarVisibility="Auto"Horizo​​ntalScrollBarVisibility="Auto" 然后将其内容设置为绑定到 ScrollViewer 的 ViewportWidthViewportHeight

    代码如下:

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

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

    干杯, 山姆

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      相关资源
      最近更新 更多