这是我需要实现的设计
基本上,这是用竖线分隔的菜单项。
我正在使用PRISM,整个栏基本上是ItemsControl
我注入菜单项
我想知道是否可以设置(不编写代码)ItemsControl,以便在除了最后一项之外的所有项目之后自动插入条形码?
如果我不想跳过最后一个垂直条,那就没什么大不了的了。
重要!我不能手动插入分隔符,因为从不同模块(PRISM)插入的菜单项我永远不知道哪一个是最后一个,所以我需要在容器级别解决这个问题。
答案 0 :(得分:2)
这可以使用Clip和RectangleGeometry完成。通过在数据模板的左侧插入管道,设置矩形剪辑以修剪第一个管道。有点hacky,你可能不得不捏造夹子开始让它看起来正确,但这是一个工作样本:
<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>
答案 1 :(得分:0)
您可以在ItemsControl中指定ItemTemplate中的竖线。