2
如何减少最深的TreeViewItem
节点的左缩进?出于某种原因,除了最深的节点之外,WPF似乎会将这种缩进增加很多。纵观Windows XP的树视图实现,每个深度都有相同的左边距。减少TreeViewItem中最深的节点的缩进
我周围搜索,我似乎无法找到工作的实施但它似乎是可能的。
如何减少最深的TreeViewItem
节点的左缩进?出于某种原因,除了最深的节点之外,WPF似乎会将这种缩进增加很多。纵观Windows XP的树视图实现,每个深度都有相同的左边距。减少TreeViewItem中最深的节点的缩进
我周围搜索,我似乎无法找到工作的实施但它似乎是可能的。
UPDATE:更正解决方案
下面是引用一个问题的图片...
这里是你在做什么的图片(可能)希望为...
注:LIS t个文件出现在第二个屏幕截图的左侧。
深入研究之后,我认为它是默认TreeViewItem模板中的缺陷。为了解决这个问题并做出其他所需的调整,您需要提供自己的TreeViewItem模板。从this SO answer默认模板树型视图开始......
您需要更改这个...
<Trigger Property="HasItems" Value="false">
<Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
</Trigger>
要这个......
<Trigger Property="HasItems" Value="false">
<Setter Property="Visibility" TargetName="Expander" Value="Collapsed"/>
</Trigger>
这应该为你做它。默认情况下,系统为exapander留下19个像素的空间。由于膨胀机在叶级不需要,该区域应该被折叠,而不是隐藏。
此技术的唯一问题是,当您单击具有应用边距的“TreeViewItem”时,背景不会随其移动。所以你最终的背景颜色没有应用边距。 – gcso
我假设你正在讨论选定的TreeViewItem的突出显示。如果是这样,这是有道理的。你最好的选择可能是重写TreeViewItem风格。这会给你完整的控制权。这里是一个来自SO的示例:http://stackoverflow.com/questions/4709450/custom-wpf-treeviewitem-style-is-behaving-incorrectly-when-databound –
是的,我发布的原始答案太简单了。唯一的方法就是提供一个新的TreeViewItem模板。我用正确的解决方案修改了帖子。 –