日期:2014-05-17  浏览次数:21341 次

WPF如何用代码控制ListView滚动?
listview只有scrollintoview方法,让它滚动到某条记录.但是现在我不知道要滚动到哪条记录,我只要它往上滚动或往下滚动,就是模拟鼠标在它上面滚动滚轮的效果.请问如何实现?
------最佳解决方案--------------------
scrollViwer.ScrollToVerticalOffset(...)
------其他解决方案--------------------
引用:
scrollViwer.ScrollToVerticalOffset(...)

这个我知道,但是listview你能直接获取到它内部的scrollviewer吗?
我自己知道该怎么弄了.

ListViewAutomationPeer lvap = new ListViewAutomationPeer(listView1);
var svap = lvap.GetPattern(PatternInterface.Scroll) as ScrollViewerAutomationPeer;
var scroll = svap.Owner as ScrollViewer;
scroll.ScrollToVerticalOffset(scroll.VerticalOffset+1);

从listview里拿出来的scrollviewer,是按元素滚动的而不是像素.
能获取到scrollviewer就好弄了.不知道有没有更简单的获取listview的scrollviewer的方法.
------其他解决方案--------------------
因为listview本身就是借助scrollviewer实现滚动的,如果cancontentscroll=true时,内部滚动可以借由rendertransform来实现
------其他解决方案--------------------
引用:
引用:
scrollViwer.ScrollToVerticalOffset(...)
这个我知道,但是listview你能直接获取到它内部的scrollviewer吗?
我自己知道该怎么弄了.


C# code?



12345

ListViewAutomationPeer lvap = new ListViewAutomationPeer(lis……


LZ是怎么用ListViewAutomationPeer 的,我怎么用它会编译失败啊