UWP:解决ImageButton图片无法覆盖及ListViewItem上下冗余问题
问题说明
- ImageButton设置任意
Stretch属性(包括UniformToFill)后,图片始终无法完全覆盖按钮区域 - ListView的列表项上下存在多余空白,尝试设置自适应内容无效果,列表项仅包含数字,无需为特殊字符预留上下空间
当前效果


预期效果


解决方案
1. 解决ImageButton图片无法覆盖问题
ImageButton默认带有内边距(Padding),这会导致图片无法填满按钮。可通过以下两种方式处理:
- 简单处理:直接设置
Padding="0",配合Stretch="UniformToFill"即可让图片填充按钮 - 自定义模板(彻底去除默认样式干扰):
<ImageButton Padding="0" Stretch="UniformToFill"> <ImageButton.Template> <ControlTemplate TargetType="ImageButton"> <Grid> <Image Source="{TemplateBinding Source}" Stretch="{TemplateBinding Stretch}"/> <ContentPresenter/> </Grid> </ControlTemplate> </ImageButton.Template> </ImageButton>
2. 消除ListView列表项冗余空间
修改ListView的ItemContainerStyle,移除默认内边距、取消最小高度限制,并设置内容垂直居中:
<ListView> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="Padding" Value="0"/> <Setter Property="MinHeight" Value="Auto"/> <Setter Property="VerticalContentAlignment" Value="Center"/> </Style> </ListView.ItemContainerStyle> <!-- 列表项内容 --> </ListView>
若仍有多余空间,检查列表项内部控件是否存在额外内边距,一并清除即可。
内容的提问来源于stack exchange,提问作者ricky rocky
相关产品推荐
相关产品推荐

