如何在使用ZoomToFactor来增加按钮单击中的缩放级别时在滚动查看器中居中缩放

问题描述

我正在使用滚动查看器缩放设置为Grid的背景的图像。何时,我使用scrollViewer在后面的代码中单击按钮时设置了缩放系数值.ZoomToFactor(zoomFactor)图像从左上角开始缩放,而不是从中心位置开始。

请从下面的链接或下面的代码片段中获取示例,以供参考。 链接:https://github.com/ragulsv/ScrollViewer

代码段[C#]:

    float count = 1;
    private void Clr_Click(object sender,RoutedEventArgs e)
    {
        count = 1;
         viewer.ZoomToFactor(count);
        viewer.RenderTransformOrigin = new Point(0.5,0.5);
    }
    private void Btn_Click(object sender,RoutedEventArgs e)
    {
         viewer.ZoomToFactor(count);
        viewer.RenderTransformOrigin = new Point(0.5,0.5);
        count += 1;
    }

代码段[Xaml]:

   <Grid x:Name="grid1">
    <Grid.RowDefinitions>
        <RowDefinition Height="0.1*">

        </RowDefinition>
        <RowDefinition Height="0.1*">

        </RowDefinition>
        <RowDefinition Height="0.8*">

        </RowDefinition>
    </Grid.RowDefinitions>
    <Button x:Name="btn" Grid.Row="0"></Button>
    <Button x:Name="clr" Grid.Row="1"></Button>
    <ScrollViewer x:Name="viewer" Grid.Row="2" ZoomMode="Enabled">
        <Grid>
          <Image Source="Assets\EditedImage.jpg" Height="190" Width="190"/>
        </Grid>
    </ScrollViewer>
</Grid>

解决方法

在使用ZoomToFactor来增加按钮单击中的缩放级别时,如何在滚动查看器中居中缩放

在这种情况下,您可以设置图像的父级Grid VerticalAlignment="Center" HorizontalAlignment="Center",使图像始终固定在ScrollViewer的中心,然后调用ChangeView方法来编辑ZoomFactor

private void Btn_Click(object sender,RoutedEventArgs e)
{
    viewer.ChangeView(0,(viewer.ZoomFactor + 1f));       
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...