I have used White in the past with some success. It also has a White.NUnit component which that allows you to integrate your tests into NUnit.
When I used it, it was relatively easy to investigate the UI, get hold of buttons, menus, etc.., click them, and then verify that the correct things happened - all from C#. Combined with NUnit asserts, it enables you to verify the UI behaves as you expect. I did have some problems with some types of controls not working properly. It has moved on a bit since I last used it so you may have more luck with the latest version.