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

<EventSetter Event="TreeViewItem.RequestBringIntoView" Handler="OnRequestBringIntoView">

事件OnRequestBringIntoView实现方法

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值