【发布时间】:2014-08-11 09:21:01
【问题描述】:
在WPF中使用ListView的分组功能时,样式中有一个很小的左侧边距。
存在分组问题(边距)的 ListView 示例:
没有分组的 ListView 示例(希望分组列表中的项目样式相同):
问题:
如何删除边距/填充?分组列表中的(选定)项目应填充与未分组列表中相同的空间。
更新:
<ListView Margin="20,0,0,0" ItemsSource="{Binding ItemsView}" SelectedItem="{Binding SelectedItem}" IsSynchronizedWithCurrentItem="True" SelectionMode="Single" BorderThickness="0" Background="Transparent">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate DataType="data:Item">
<DockPanel HorizontalAlignment="Stretch">
<TextBlock Text="{Binding Name}" FontWeight="Bold" Margin="0,5,5,5" />
<Separator />
</DockPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
<ListView.ItemTemplate>
<DataTemplate DataType="data:Item">
<TextBlock Margin="10,10,10,10" Text="{Binding Name}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
【问题讨论】:
-
尝试为
ItemsControl.GroupStyleProperty 定义一个Style。 -
已经做了...边距(设置边距=“0”),但仍然存在用于分组项目。究竟需要设置什么?
-
可能是
Padding...找出答案的最佳方法是对各种内部控制的Background进行不同的着色。这样,您将能够看到哪个控件占用了空间并采取相应措施。 -
@Sheridan Padding 有什么控件?这没有帮助,我不知道要设计哪个对象。它不是 DataItemTemplate 的一部分,也不是 GroupStyle.HeaderTemplate 的一部分。
-
然后显示演示此问题的相关 XAML。