TreeView的滚动在第一次展开节点时跳转到顶部

时间:2014-09-26 19:53:36

标签: c# wpf scroll treeview scrollviewer

我第一次在TreeView中展开节点时,TreeView' s ScrollViewer会将滚动条跳到顶部。在此初始跳转之后,TreeView的滚动按预期运行。

如何防止此行为?

我已尝试在FocusManager.IsFocusScope="True"上设置TreeView,我甚至尝试过在ScrollToTop()&#上调用TreeView等奇怪的事情39; ScrollViewer回调中的Loaded,看看我是否可以触发某种不会发生的初始化。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的情况,下面为我解决了这个问题。在后面的代码中,在创建树视图项目之后,请执行以下操作:

TreeViewItem item = this.TreeView.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem;
if (item != null)
{
    item.IsSelected = true;
    item.Focus();
}

答案 1 :(得分:0)

在我的情况下,扩展器切换按钮有一个自定义样式,属性“ Focusable”设置为False。当用户在树中展开某些内容时,这会导致TreeView滚动跳到所选项目。解决方案-Focusable =“ True”

相关问题