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模板。我用正確的解決方案修改了帖子。 –