为列表框分组矩形

时间:2015-06-12 10:43:59

标签: c# wpf adorner

我有列表框,用户可以分组任意数量的项目。我想在分组项目周围显示一个红色矩形。我尝试使用装饰,但似乎装饰可以在单一控件上绘制。是否有任何更简单的方法来实现它,可能只在xaml。

<ListBox  ItemsSource="{Binding MyList, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
        <ListBox.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Border Height="50" Width="100" Background="Yellow">
                                <TextBlock Text="{Binding item}"/>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ListBox.ItemContainerStyle>
    </ListBox>

1 个答案:

答案 0 :(得分:0)

正如XAMIMAX所说。您需要为GroupItem编写样式。请参阅下面的代码。

<ListBox.GroupStyle>
            <GroupStyle>
                <GroupStyle.ContainerStyle>
                    <Style TargetType="{x:Type GroupItem}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type GroupItem}">
                                    <Border BorderBrush="Red" BorderThickness="2" >
                                        <StackPanel>
                                            <ContentPresenter/>
                                            <ItemsPresenter />
                                        </StackPanel>

                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </GroupStyle.ContainerStyle>
            </GroupStyle>
        </ListBox.GroupStyle>