My images are blurry! Why isn't WPF's SnapsToDevicePixels working? My images are blurry! Why isn't WPF's SnapsToDevicePixels working? wpf wpf

My images are blurry! Why isn't WPF's SnapsToDevicePixels working?


You may want to consider trying a new property available now in WPF4. Leave the RenderOptions.BitmapScalingMode to HighQuality or just don't declare it.

NearestNeighbor worked for me except it led to jaggy bitmaps when zooming in on the application. It also didn't seem to fix any glitches where icons were sizing in weird ways.

On your root element (i.e. your main window) add this property: UseLayoutRounding="True".

A property previously only available in Silverlight has now fixed all Bitmap sizing woes. :)


Rather than using SnapsToDevicePixels, I instead used RenderOptions.BitmapScalingMode and they're now nice and crisp!

XAML:

<Image Name="ImageOrderedList"       Source="images/OrderedList.png"       ToolTip="Ordered List"       Margin="0,0,5,5"       Width="20"       Height="20"       RenderOptions.BitmapScalingMode="NearestNeighbor"       MouseUp="Image_MouseUp"       MouseEnter="Image_MouseEnter"       MouseLeave="Image_MouseLeave" />


+1 for Zack Peterson

I'm using .Net 3.5 sp1 and it looks like the most simple solution for a large number of fuzzy images.It's not a big deal to specify RenderOptions in-place, but for 3rd-party components a style in app-level resource makes sense:

 <Style TargetType="{x:Type Image}">    <Setter        Property="RenderOptions.BitmapScalingMode"        Value="NearestNeighbor" /> </Style>

Worked nicely when AvalonDock started to render blurry icons.