ListView和GridView的item自动改变边距!

经过我测试,发现ListView和GridView中的item,不论是正常的item还是Header或者Footer

在被添加到ListView中的时候都会自动改变item的边距:

所有item都会横向展宽,左右各3.5dp。

导致的结果就是如下图所示:

其中蓝色的表示xml中设计的item宽度,和listview的显示宽度

红色的表示实际绘制到listview中的宽度,也就是会被展宽到超出listview的显示范围。

所以最后的症状就是:

1.对于有padding或者margin的item,显示的左右边距变小了!

2.对于没有padding和margin的item,其左右的内容会被截断一点点

### 如何在 WPF ListView 中显示网格线 为了在 `ListView` 控件中显示网格线,在定义控件时可以利用 `GridView` 的样式属性来实现这一需求。具体来说,通过设置 `GridLinesVisibility` 属性以及调整单元格之间的可以让网格线显现出来。 下面是一段用于展示如何启用 `ListView` 网格线的 XAML 代码: ```xml <ListView> <ListView.View> <GridView AllowsColumnReorder="True"> <!-- 显示水平垂直方向上的网格线 --> <GridView.ColumnHeaderContainerStyle> <Style TargetType="{x:Type GridViewColumnHeader}"> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </GridView.ColumnHeaderContainerStyle> <GridView.RowStyle> <Style TargetType="{x:Type ListViewItem}"> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Padding" Value="2"/> <Setter Property="Margin" Value="-1,0,-1,0"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="BorderBrush" Value="#C9C9C9"/> <!-- 设置网格线条颜色 --> </Style> </GridView.RowStyle> <GridViewColumn Header="名称" Width="120" DisplayMemberBinding="{Binding Name}"/> <GridViewColumn Header="年龄" Width="80" DisplayMemberBinding="{Binding Age}"/> <GridViewColumn Header="职业" Width="150" DisplayMemberBinding="{Binding Job}"/> </GridView> </ListView.View> </ListView> ``` 这段代码不仅设置了每一行项目的框厚度 (`BorderThickness`) 填充 (`Padding`) 来模拟网格效果,还特别指定了框画刷的颜色 (`BorderBrush`) 使得网格更加明显[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值