当前位置:  开发笔记 > 编程语言 > 正文

Windows商店应用ScrollViewer.ChangeView()无法正常工作

如何解决《Windows商店应用ScrollViewer.ChangeView()无法正常工作》经验,为你挑选了2个好方法。

尝试在双击事件触发的Windows应用商店应用中缩小滚动视图.

这是它应该发生的代码

private void MainPhotoDisplay_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
{
    MainPhotoDisplayscrollViewer.ChangeView(null, null, 1.0F,true);
}

但如果我放大,在模拟器中,然后双击,没有任何反应.事件触发并且方法运行但没有任何反应,视图仍然处于放大状态.

这是它的文档:http://msdn.microsoft.com/en-us/library/windows/apps/dn252762.aspx

这个过时的方法:

 MainPhotoDisplayscrollViewer.ZoomToFactor(1);

工作得很好,但遗憾的是它没有动画,这会导致糟糕的用户体验.并不是我想要的.

关于为什么没有发生的任何想法?



1> mcont..:

另一种解决方案是Task.Delay在指令之前添加一个调用.

真的很奇怪,但它的确有效.

await Task.Delay(1);
scroller.ChangeView(null, null, null, false); // whatever



2> Essah..:

找到解决方案:http: //social.msdn.microsoft.com/Forums/windowsapps/en-US/c3eac347-fe08-41bd-98cb-d97b6f260873/double-tap-to-zoom-image-windows-81-scrollviewerchangeview?forum = winappswithcsharp

这里标记为解决方案的帖子实际上是有效的,但如果您使用有问题的scrollViewer在页面的代码隐藏中运行代码,则不需要事件的前3行.记得将调用中的最后一个bool设置为false以显示动画.

var period = TimeSpan.FromMilliseconds(10);
        Windows.System.Threading.ThreadPoolTimer.CreateTimer(async (source) =>
        {
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                var Succes = MainPhotoDisplayscrollViewer.ChangeView(null, null, 1.0F, false);
            });
        }, period);

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有