所以我有一个带有图像的文件列表。因此,列表中项目的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>
但为什么列表中的每个图像呈现不同?示例如下:
正如您所看到的,每张图片都有细微的差别。一些图像的底线大于其他图像。为什么是这样?我期待的行为是每个项目看起来都相同
答案 0 :(得分:0)
尝试添加RenderOptions.BitmapScalingMode="HighQuality"
。另一种选择是使用尺寸为15 x 15像素的图像。这两个选项都应该有用。
修改强>
这里发生的是你有一个20x20像素的图像。如果你想以15x15像素的分辨率渲染它,你的程序应该做什么,因为没有一对一的功能与两种分辨率相关?哪个像素最终应该在最终图像的哪个像素中?在你的情况下发生的事情是,WPF有时会从边框获取像素,黑色,有时是相邻的像素。整个故事被称为aliasing。有各种技术可以克服不同的人工制品,这些工艺源于渲染时像素分辨率的不匹配,这称为antialising。看看这个不错的article
答案 1 :(得分:-3)
尝试将Stretch="UniformToFill"
添加到图片