#392 – Use SnapsToDevicePixels Property to Prevent Anti-Aliasing

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).

About Sean
Software developer in the Twin Cities area, passionate about software development and sailing.

One Response to #392 – Use SnapsToDevicePixels Property to Prevent Anti-Aliasing

  1. Pingback: #454 – UseLayoutRounding vs. SnapsToDevicePixels « 2,000 Things You Should Know About WPF

Leave a comment