WPF树视图,如何更改缩进

我的Treeview基本上有“文件夹”节点,并且在不包含其他项目的项目下面一级。

因此,不需要用于展开/折叠图标的空间(在级别2上)。 我可以放弃这个图标空间,从而减少凹痕。 项目(在示例“机场”中)应向左移动一些像素。

示例树视图

重要:基本上寻找代码解决方案(C#),而不是XAML版本。

您真正想要做的是编辑HierarchicalDataTemplate并更改其行为方式。 以下页面具有编辑分层数据模板的非常好的高级视图。

我也发现这个开始时非常好。 虽然这两个页面都没有明确说明要做什么,但实质上是在更改项目演示者中的布局属性。

编辑

哎呀,我错了。 不是HierarchicalDataTemplate,而是TreeViewItem模板。

请参阅下面的示例。 如果您知道不会有任何第三级节点,这只是最简单的方法。

特别注意名为ItemsHost的ItemsPresenter元素。 它的边际为-12,0,0,0。 这意味着它的左边距是负的,因此从左边的方向溢出包含它的网格列。 因此,所有子节点都会向左拉一点。 如果将来有三级节点,它们也会被拉到左侧。 如果您不想这样,那么您将不得不为不同级别的节点提供不同的模板。 但这超出了这个答案的范围。