我有这样的事情:
Synchronized scrolling of two ScrollViewers whenever any one is scrolled in wpf
问题是Scrollviewer内容的大小不同。
我设法计算了条形的比例运动但没有考虑条形的大小,它们彼此不同:
sv2.ScrollToHorizontalOffset(e.HorizontalOffset * (sv1.Width / grid1.Width) / (sv2.Width / grid2.Width));
sv1.ScrollToHorizontalOffset(e.HorizontalOffset * (sv2.Width / grid2.Width) / (sv1.Width / grid1.Width));
它只协调条形的开始,无论它们的大小如何。有什么想法吗?
答案 0 :(得分:1)
您必须以总数的一小部分计算滚动位置:
在sv1上的scrolloffset更改后尝试类似
var scFract = sv1.HorizontalOffset / sv1.ScrollableWith;
sv2.ScrollToHorizontalOffset(sv2.ScrollableWith * scFract);