WPF TreeView - 将展开的项目滚动到 View 中

标签 wpf treeview

我正在尝试编写一个自定义 WPF/MVVM TreeView 控件,它会在展开父项时自动将(尽可能多的)子项滚动到 View 中。

我找到了这篇文章,WPF TreeView - How to scroll so expanded branch is visible ,但似乎只有当树项实际从 TreeViewItem 派生时才有效。

我的 Tree Item 类只是一个普通的 C# 对象 - 与 Josh Smith 的博客 http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode 一致,它们在 Tree Item 类的 IsExpanded 属性 setter 中延迟加载。

进入 OnExpand 事件处理程序,我可以看到原始源是一个 TreeViewItem(由幕后框架创建),它在标题字段中有我的树项对象。此 TreeViewItem 只有 1 个视觉子项,一个网格,而网格又具有 3 个视觉子项,ToggleButton、Border 和 ItemsPresenter。

有没有人提示我如何为我的子项获取相应的可视化组件,然后我可以在其上调用 BringIntoView()?

最佳答案

找到一个非常好的行为,可以将所选项目滚动到 View 中,位于此处:

不幸的是,当项目被扩展时,这并不适用,但可以根据您的具体要求进行修改。如果您需要任何帮助,请告诉我。

http://www.codeproject.com/Articles/28959/Introduction-to-Attached-Behaviors-in-WPF

关于WPF TreeView - 将展开的项目滚动到 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12371496/

相关文章:

c# - 动态设置工具提示宽度和高度

WPF - FocusVisualStyle 我在哪里应用它?

Javascript 代码执行延迟

wpf - 禁用 WPF TreeView(或 TreeViewItem)选择?

wpf - xaml 中的鼠标位置 - wpf

wpf - MVVM-Light/WPF 导航应用

wpf - Powershell 控制台控制

string - 如何通过 TMemoryStream 将 Unicode 字符串加载到 TTreeView 中?

python - ttk Treeview selection_set 不能接受空格

validation - 如何验证素数树 <p :tree>