我正在用TreeView創建一個圖形。以下是一個屏幕截圖。到目前爲止,一切都是在造型上完成的。我將TreeView的ItemsPanel設置爲一個水平的StackPanel。 (回形針只是放置物品持有人沒有圖像。)WPF TreeView有兩個分開的ItemsPanel分支和葉子
通知底層的孩子,是樹葉。他們自己沒有任何孩子。
這裏是問題:我想要這些項目進入一個單獨的WrapPanel。問題是一件物品顯然可以有孩子和沒有孩子的孩子(樹枝和葉子)。 ItemsPanel仍然需要是一個StackPanel,所以你可以得到一個很好的水平佈局。但是StackPanel中的最後一個控件需要是一個帶有所有無子項子項的WrapPanel。
這是一個屏幕截圖,我拼湊在一起顯示在一個WrapPanel中的樹葉。
事情我已經試過
我試圖創建自己的物品板轉換,但轉換整個項目小組到畫布面板。
我試着只是添加一個單獨的樹視圖到ItemTemplate並將其綁定到一個單獨的集合,但這不是正確的樣子。
東西我還沒有試過
我談論的WrapPanel幾乎就像一個分支。但分支本身是空的,但包含兒童。也許我可以根據屬性更改節點的樣式。然後,而不是顯示圖片或任何,它的數據模板將是一個WrapPanel
你可以發佈你的treeview的xaml嗎?如何使用在#_of_children == 0上觸發的樣式觸發器或在您的模型屬性IsLeaf或類似觸發器上觸發。在觸發器觸發你改變ItemsPanel。 – michele 2013-02-27 14:24:32
這很好@michele,那麼什麼?無論如何,葉子不會使用項目面板。儘管葉子在項目面板中。但我不能簡單地更改父項的項目面板。父母基本上需要2個項目面板。一個用於分支,另一個用於葉子。 – 2013-02-27 15:12:29
@michele你讓我想到了一些東西。如果在像「IsLeafCollection」這樣的節點上添加標誌,它會將項目面板更改爲WrapPanel。讓我看看。 – 2013-02-27 15:16:26