WPF中图像模糊的处理方法

在wpf中使用Image时,时常会出现图像模糊的情况,有两种方法可以解决这一问题:

  1. 设置Image的SnapsToDevicePixels属性为true。
    <Image Source="images/OrderedList.png" Width="20" Height="20" SnapsToDevicePixels="True" />

    网上所能查到的方法大多是这种方法,然而有的时候,这种方法也不起作用,这时候我们可以试试下面这种方法。

  2. 设置附加属性RenderOptions.BitmapScalingMode="NearestNeighbor"
    <Image Source="images/OrderedList.png" Width="20" Height="20" RenderOptions.BitmapScalingMode="NearestNeighbor" />
    这个附加属性也可以放在
    window中,这样就对整个窗体的所有image对象都起作用了。
    <Window RenderOptions.BitmapScalingMode="NearestNeighbor" />

补充:今天看到园子里另外一篇文章的介绍的方法,设置UseLayoutRounding="True",试了一下,确实这个是最好的方式,基本上和WinForm下的显示效果是一致的了。原文对各种方案的效果介绍得比较详细,值得一读:http://www.cnblogs.com/xiaokang088/p/3200431.html

这个属性是.net 4.0新增的,我写这篇文章的时候还没有这种方案,看来微软对WPF也还是在不断的改进的。

原文地址:https://www.cnblogs.com/TianFang/p/1515553.html