Wpf 使用listbox分组时避免使用空格
我使用的是列表框分组,我希望避免头和子元素之间的垂直空格,如下所示: 这是同样的xamlWpf 使用listbox分组时避免使用空格,wpf,xaml,listbox,wpf-controls,Wpf,Xaml,Listbox,Wpf Controls,我使用的是列表框分组,我希望避免头和子元素之间的垂直空格,如下所示: 这是同样的xaml <Grid> <Grid.Resources> <XmlDataProvider x:Key="Company" XPath="/Company"> <x:XData> <Company xmlns=""> <Person
<Grid>
<Grid.Resources>
<XmlDataProvider x:Key="Company" XPath="/Company">
<x:XData>
<Company xmlns="">
<Person Name="Jack" Role="CEO"/>
<Person Name="Tim" Role="PL" />
<Person Name="Jil" Role="PL" />
<Person Name="Jimmy" Role="PM" />
<Person Name="Joy" Role="PM" />
<Person Name="Jim" Role="PL" />
<Person Name="Jack" Role="PM" />
</Company>
</x:XData>
</XmlDataProvider>
<DataTemplate x:Key="categoryTemplate">
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold" Background="ForestGreen" Margin="0,5,0,0"/>
</DataTemplate>
<DataTemplate x:Key="template">
<TextBlock Text="{Binding XPath=@Name}"/>
</DataTemplate>
<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource Company},XPath=Person}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="@Role"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ListBox Name="lst" ItemTemplate="{StaticResource template}" ItemsSource="{Binding Source={StaticResource cvs}}">
<ListBox.GroupStyle>
<GroupStyle HeaderTemplate="{StaticResource categoryTemplate}" />
</ListBox.GroupStyle>
</ListBox>
</Grid>
检查这是否适合您。只是修改了你的模板位
<DataTemplate x:Key="template">
<TextBlock Text="{Binding XPath=@Name}" Margin="-5,0,0,0"/>
</DataTemplate>
分组时,
列表框
将使用分组项目
,它们的默认边距
设置为5,0,0
。另外,ListBoxItem
带有默认的Padding
值2,0,0
。您可以像这样更改其中一个或两个
<ListBox ...>
<ListBox.Resources>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<StackPanel>
<ContentPresenter/>
<ItemsPresenter Margin="0,0,0,0"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
</Style>
</ListBox.ItemContainerStyle>
<!--...-->
</ListBox>
您是否尝试过用宽度缩小网格大小?