为什么每个图像在我的列表中呈现不同

Why does each image render differently in my list

所以我有一个带有图像的文件列表。所以列表中项目的项目模板是:

<StackPanel Orientation="Horizontal">
    <Image Width="15" Height="15" Margin="0,0,3,0" Source="/MyProj;component/Resources/file.png"/>
    <TextBlock x:Name="Path" Text="{Binding FileName}"/>
</StackPanel>

但为什么列表中的每张图像呈现方式不同?示例如下:

如您所见,每张图片都略有不同。有些图片的底线比其他图片更粗。为什么是这样?我期望的行为是每个项目看起来都一样

尝试将 Stretch="UniformToFill" 添加到图像中

尝试添加 RenderOptions.BitmapScalingMode="HighQuality"。另一种选择是使用大小为 15 x 15 像素的图像。任何一个选项都应该有效。

编辑:

这里发生的情况是,例如,您有一个 20x20 像素的图像。如果你想以 15x15 像素的分辨率呈现它,你的程序应该如何处理没有与两种分辨率相关的一对一函数的事实?哪个像素应该在最终图像的哪个像素中结束?在您的情况下发生的情况是,WPF 有时会从边界获取像素,这些像素是黑色的,有时相邻的像素不是。整个故事叫做aliasing. There are various techniques to overcome the different artefact's that originate from a mismatch in pixel resolution while rendering and this is called antialising. Check out also this nice article