我正在尋找一種方法在Canvas
面板中使我的TreeView
顯示項目。使TreeView.ItemsPanel成爲畫布
<TreeView>
<TreeView.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True"/>
</ItemsPanelTemplate>
</TreeView.ItemsPanel>
<TreeViewItem Header="Root" IsExpanded="True" Canvas.Left="50" Canvas.Top="20">
<TreeViewItem Header="Alpha" Canvas.Left="10" Canvas.Top="50">
<TreeViewItem Header="Sub"/>
</TreeViewItem>
<TreeViewItem Header="Beta"/>
<TreeViewItem Header="Gamma"/>
</TreeViewItem>
</TreeView>
該解決方案允許我身邊根TreeViewItem
移動,但我想在TreeView
每一個項目要尊重Canvas
附加屬性。我的意思是,當Root {Left = 50,Top = 10}(在這裏它有效)包含Alpha {Left = 0,Top = 0}時,Root將在[50,10]處,Alpha在[0,0 ](座標絕對爲Canvas
)。
之所以爲什麼只有根號TreeViewItem
自己放置正確的是,我使用TreeView.ItemsPanel
。我有一種感覺,我應該用TreeView.ItemContainerStyle
來代替,但我真的不知道如何。
當然,任何幫助表示讚賞,最好也納入HierarchicalDataTemplate
太_I知道如何連接解決方案與Binding
。
是否有什麼特別的原因,你使用'TreeView'而不是'ItemsControl'? – Rachel 2012-02-29 20:04:48
是的,我想使用'HierarchicalDataTemplate',並且從我在互聯網上發現的東西,它只使用'TreeView'。但是如果有一種方法可以使用它,我會很樂意使用ItemsControl。 – 2012-02-29 20:26:22
您的TreeView中的數據對象是否都是同一類型?如果是這樣,你可以使用一個隱式'DataTemplate'而不是'HierarchicalDataTemplate'。 – Rachel 2012-02-29 20:28:22