WPF应用中DataGrid列头Button内的Image图片不显示问题求助
问题修复方案
1. 确认图片资源配置
在解决方案资源管理器中找到Assets/filter-outline_black.png文件,右键点击选择「属性」,检查两项核心配置:
- 「生成操作」必须设置为 Resource
- 「复制到输出目录」设置为 如果较新则复制
这是WPF中本地图片无法加载最常见的诱因,多数是新增图片文件后忘记修改默认属性导致的。
2. 修正图片路径写法
把Image的Source替换为标准Pack URI绝对路径写法,避免列头上下文导致的路径解析异常:
<Image Height="30" Width="30" Source="pack://application:,,,/TestDB;component/Assets/filter-outline_black.png" />
3. 调整布局适配列头规则
DataGrid列头默认自带内边距,且默认高度通常在28px左右,你设置的30px高度的图片会被列头裁剪,同时Background={x:Null}的写法也可能引发控件渲染异常,修改Button配置如下即可:
<Button Grid.Column="1" x:Name="btnFilterView" Margin="0" Background="Transparent" BorderThickness="0" HorizontalAlignment="Right" VerticalAlignment="Center"> <Image Height="20" Width="20" Source="pack://application:,,,/TestDB;component/Assets/filter-outline_black.png" /> </Button>
如果需要保留30px尺寸的图片,可以额外给列头设置高度样式:
<DataGridTextColumn.HeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="Height" Value="35"/> <Setter Property="Padding" Value="2"/> </Style> </DataGridTextColumn.HeaderStyle>
内容的提问来源于stack exchange,提问作者Antelito
相关产品推荐
相关产品推荐

