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

时间:2015-03-09 12:16:53

标签: c# wpf image list rendering

所以我有一个带有图像的文件列表。因此,列表中项目的itemtemplate是:

<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>

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

enter image description here

正如您所看到的,每张图片都有细微的差别。一些图像的底线大于其他图像。为什么是这样?我期待的行为是每个项目看起来都相同

2 个答案:

答案 0 :(得分:0)

尝试添加RenderOptions.BitmapScalingMode="HighQuality"。另一种选择是使用尺寸为15 x 15像素的图像。这两个选项都应该有用。

修改

这里发生的是你有一个20x20像素的图像。如果你想以15x15像素的分辨率渲染它,你的程序应该做什么,因为没有一对一的功能与两种分辨率相关?哪个像素最终应该在最终图像的哪个像素中?在你的情况下发生的事情是,WPF有时会从边框获取像素,黑色,有时是相邻的像素。整个故事被称为aliasing。有各种技术可以克服不同的人工制品,这些工艺源于渲染时像素分辨率的不匹配,这称为antialising。看看这个不错的article

答案 1 :(得分:-3)

尝试将Stretch="UniformToFill"添加到图片