如何使用这样的分隔符创建项目控制派生?

时间:2012-01-04 18:25:03

标签: c# silverlight xaml prism

这是我需要实现的设计

enter image description here

基本上,这是用竖线分隔的菜单项。 我正在使用PRISM,整个栏基本上是ItemsControl我注入菜单项

我想知道是否可以设置(不编写代码)ItemsControl,以便在除了最后一项之外的所有项目之后自动插入条形码?

如果我不想跳过最后一个垂直条,那就没什么大不了的了。

重要!我不能手动插入分隔符,因为从不同模块(PRISM)插入的菜单项我永远不知道哪一个是最后一个,所以我需要在容器级别解决这个问题。

2 个答案:

答案 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中的竖线。