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,这将有所帮助,尽管……

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...