這是設計我需要實現如何使用這些分隔符創建項目控件派生項?
基本上,這是用豎線分隔的菜單項。 我使用PRISM和整個酒吧基本上是ItemsControl
,我以這樣的方式,它會自動除最後一個所有項目後插入欄注菜單項
我不知道是否有可能風格(無需編寫代碼)的ItemsControl ?
如果我不想跳過最後一個垂直條,那不會有什麼大不了的。
重要!我不能手動插入分隔符,因爲從不同模塊(PRISM)插入的菜單項和我從來不知道哪一個是最後一個,所以我需要在容器級別解決這個問題。
這是設計我需要實現如何使用這些分隔符創建項目控件派生項?
基本上,這是用豎線分隔的菜單項。 我使用PRISM和整個酒吧基本上是ItemsControl
,我以這樣的方式,它會自動除最後一個所有項目後插入欄注菜單項
我不知道是否有可能風格(無需編寫代碼)的ItemsControl ?
如果我不想跳過最後一個垂直條,那不會有什麼大不了的。
重要!我不能手動插入分隔符,因爲從不同模塊(PRISM)插入的菜單項和我從來不知道哪一個是最後一個,所以我需要在容器級別解決這個問題。
這可以使用Clip和RectangleGeometry完成。通過在您的數據模板左側插入管道,設置一個矩形剪輯以剪掉第一個管道。有點哈克,你可能不得不哄騙剪輯開始讓它看起來不錯,但這裏有一個工作示例:
<ItemsControl xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String>No</sys:String>
<sys:String>Pipe</sys:String>
<sys:String>On</sys:String>
<sys:String>First</sys:String>
<sys:String>Item</sys:String>
<ItemsControl.Clip>
<RectangleGeometry Rect="5,0,1000,10000" />
</ItemsControl.Clip>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="|" />
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
您可以在ItemsControl的ItemsTemplate中指定垂直條。
但它會爲每個項目。我需要它之間的項目 – katit 2012-01-04 20:06:15
只要把它放在模板的右邊(或左邊)。 terphi舉了一個例子。 – 2012-01-04 22:52:53