我试图使用每100 at刷新一次的ScrollViewer值来计算VerticalOffset的滚动速度。问题是VerticalOffset值没有实时更新。因此,每秒钟的值都与最后一个值相同。我甚至尝试了scrollviewer.UpdateLayout();或者this.UpdateLayout();但是仍然没有改变。
以下是代码:
void Timer_Tick(object sender, EventArgs e)
{
Dispatcher.BeginInvoke(() =>
{
this.UpdateLayout();
double current_position = scrollviewer.VerticalOffset;
speed = (current_position - last_position);
last_position = current_position;
last_speed = speed;
Speed_text.Text = "Speed : " + speed.ToString();
});
}我想得到确切的VerticalOffset。即使刷新率是每10毫秒一次。
更新:
因此,我尝试用viewportcontrol替换滚动查看器,因为longlistselector也使用它。结果良好。我从viewportcontrol.ViewPort.Top获得实时值。
发布于 2014-11-06 17:33:34
我用ViewPortControl代替了ViewPortControl。现在,不用滚动查看器中的VerticalOffset,我可以对ViewPortControl.ViewPort.Top做同样的操作
我只需要确保边界在ViewPortControl中是正确的
https://stackoverflow.com/questions/26783999
复制相似问题