ConfuserEx is as an Open Source obfuscator which does pretty good job making code very difficult to follow.
If WPF exe doesn't work properly after using one of the presets, try adding protections manually (I found that in my case 'Name Protection' (rename) was breaking event handling):