#392 – Use SnapsToDevicePixels Property to Prevent Anti-Aliasing
September 22, 2011 1 Comment
Because WPF position GUI elements using device-independent units, small GUI elements can look fuzzy when rendered, due to anti-aliasing.
Notice the inconsistent appearance of the vertical lines in the example below. Every line should be the same width, since they were defined to be 1 WPF unit wide (1 pixel at 96 dpi).
You can prevent fuzziness due to anti-aliasing by setting the SnapsToDevicePixels property of an UIElement to true. Setting this property to true tells the rendering system to line elements up with pixel boundaries, which prevents anti-aliasing. This is known as pixel snapping.
Setting SnapsToDevicePixels to true on the parent ListBox in the above example leads to vertical lines that are consistently sized (1 pixel wide on a 96 dpi display).