微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

winrt-xaml – ScrollViewer.ChangeView返回false

我有这个ScrollViewer,我以编程方式添加元素:

<ScrollViewer VerticalSnapPointsAlignment="Near"
                          VerticalSnapPointsType="Mandatory"
                          VerticalScrollMode="Enabled"
                          VerticalScrollBarVisibility="Hidden"
                          ZoomMode="disabled"
                          Width="400"
                          Height="400"
                          x:Name="MainFeatureScrollViewer"
                          ViewChanging="ScrollViewer_ViewChanging">
                <StackPanel x:Name="MainFeatureStackPanel" />
            </ScrollViewer>

当我像下面一样调用ChangeView时,它返回false并且没有任何反应.为什么这不起作用?

bool result = this.MainFeatureScrollViewer.ChangeView(null,400,null,true);

解决方法

刚出现同样的问题 – 这里的基本问题是我的代码在同一个循环中调用了两次ChangeView() – 一次在非GUI线程上(返回true,但当然没有真正滚动到所需的位置,因为它不是在GUI线程上,后来在GUI线程上的调度程序方法(返回false,因为scrollViewer显然已经看到它已经获得了一个新的滚动位置,它还没有显示).

一旦我删除了未在GUI线程上完成的ChangeView()调用,它就可以正常工作.如果ScrollViewer的文档将解释在哪些情况下它将返回false,这将有所帮助,尽管……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐