WPF中ScrollViewer滚动条自动滚动到最上方

参考链接:https://social.msdn.microsoft.com/Forums/vstudio/en-US/bab3fb62-bf9e-4db6-854c-829bd2896319/how-to-prevent-scrollviewer-from-calling-bringintoview?forum=wpf

问题描述:WPF中点击一个文件夹A,A的子文件不能完全显示在视图里面,此时右键点击A文件夹,滚动条会自动滚动直到A文件夹处在视图的最上方,右键打开的Menu还会停留在A文件夹原来的位置

 解决:TreeView下面添加事件OnRequestBringIntoView

事件OnRequestBringIntoView实现方法

private void OnRequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
    e.Handled = true;
}

 问题就解决了,其中RequestBringIntoView此事件向父ScrollViewer(或派生类)表明,引发RequestBringIntoView事件的元素应该在可滚动区域内可见。然后,通过使用事件的类处理,ScrollViewer将RequestBringIntoView事件标记为已处理。通常,RequestBringIntoView事件数据不应该由控制滚动区域的任何类或任何实例处理程序标记处理,因为这样做会干扰名为BringIntoView的元素的预期目标。(来自MSDN)

你可能感兴趣的:(闲杂,WPF,ScrollViewer,滚动条自动滚动)