我在WPF applcation中使用了一些图像.
XAML:
但是,它们显得模糊:
死链接 - 模糊的WPF图像
这是一个放大的,并排的比较.原件在左侧:
死链接 - 模糊的WPF图像缩放
为什么这SnapsToDevicePixels="True"
条线不能阻止这个问题呢?
您可能需要考虑尝试在WPF4中使用的新属性.离开RenderOptions.BitmapScalingMode
到高质量或者只是不申报.
NearestNeighbor为我工作,除了它在放大应用程序时导致锯齿状位图.它似乎也没有解决任何图标以奇怪的方式进行大小调整的故障.
在你的根元素(即你的主窗口)上添加这个属性:UseLayoutRounding="True"
.
以前只在Silverlight中可用的属性现在修复了所有Bitmap大小调整问题.:)
而不是使用SnapsToDevicePixels
,我改为使用RenderOptions.BitmapScalingMode
,他们现在很好,很清爽!
XAML:
现在看来它是这样的:
清晰的WPF图像http://img13.imageshack.us/img13/9926/crispwpfimages.gif
给扎克彼得森+1
我正在使用.Net 3.5 sp1,它看起来像是大量模糊图像的最简单的解决方案.在适当的位置指定RenderOptions并不是什么大不了的事,但对于第三方组件,应用级资源中的样式是有意义的:
当AvalonDock开始渲染模糊图标时,工作得很好.
UseLayoutRounding="True"
在许多情况下使用根窗口,但我在使用WPF功能区控件时遇到问题.我的应用程序依赖于根据用户正在做什么而出现的Contextual选项卡,当我设置UseLayoutRounding
to时True
,上下文选项卡不会显示,而RibbonButton的图像也不会显示.此外,应用程序冻结了几秒钟,CPU风扇开始唱歌.
RenderOptions.BitmapScalingMode="NearestNeighbor"
在我的图像上使用更正了图像渲染问题(模糊和裁剪图像),并与功能区上下文选项卡使用完全兼容.
RenderOptions.BitmapScalingMode ="NearestNeighbor"在大多数情况下运行良好.然而,偶尔你会得到图形故障(在我的情况下,5个图像中有4个显示正常,但第五个在右边缘有轻微的扭曲).我修正了我将Image控件的右边距增加1.
如果仍然无法修复它,请尝试EugeneZ提到的上面的Bitmap类控件.它是Image控件的替代品,到目前为止它对我来说效果很好.见http://blogs.msdn.com/dwayneneed/archive/2007/10/05/blurry-bitmaps.aspx