如何解决使用ScrollViewer从中心起点缩放和平移图像在UWP中不起作用
我的要求是,我想使用scrollviewer ZoomToFactor方法以编程方式缩放图像。当使用ZoomToFactor方法应用缩放值时,它应该是从原点中心开始缩放。
因此,我已经在网格布局中添加了图像,并将其水平和垂直对齐方式设置为中心,然后在ScrollViewer中添加了网格,如下面的代码片段所示。
[XAML]
<ContentControl Grid.Row="2">
<ScrollViewer x:Name="scrollViewer" VerticalScrollMode="Enabled" HorizontalScrollMode="Enabled" ZoomMode="Enabled" >
<Grid VerticalAlignment="Center" HorizontalAlignment="Center" Width="216" Height="319">
<Image x:Name="MyImage" Source="Assets\EditedImage.jpg" />
</Grid>
</ScrollViewer>
</ContentControl>
[C#]
int count = 1;
private void Btn_Click(object sender,RoutedEventArgs e)
{
count += 1;
scrollViewer.ZoomToFactor(count);
}
问题1:图像从topLeft位置缩放。但是应该从图像的中心缩放。
问题2:放大后,如果使用手指水平平移,它将重置为先前的位置。
此外,我尝试将RenderTransformOrigin设置为上述代码中的Grid和Image的(0.5,0.5)。那也失败了。
任何人,请指导我上述代码有什么问题。
此致
巴拉提。
解决方法
使用ScrollViewer从中心起点缩放和平移图像在UWP中不起作用
我已经测试了上面的代码,该问题是由于您将ScrollViewer
放在ContentControl
中而导致ScrollViewer
的大小与子网格大小相同。您可以使用UserControl
进行替换。
<UserControl Grid.Row="2">
<ScrollViewer x:Name="scrollViewer" VerticalScrollMode="Enabled" HorizontalScrollMode="Enabled" ZoomMode="Enabled" >
<Grid VerticalAlignment="Center" HorizontalAlignment="Center" Width="216" Height="319" >
<Image x:Name="MyImage" Source="Assets\EditedImage.jpg" Stretch="Uniform" RenderTransformOrigin="0.5,0.5" />
</Grid>
</ScrollViewer>
</UserControl>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。