I know how to create a WPF font picker with a few lines of XAML, binding to Fonts.SystemFontFamilies
(thanks to Norris Cheng\'s excellent blog post), but I can\
I could not find an easy reliable way to do this. I think the best solution is to honor the hidden state of fonts as provided by Windows 7. This way users can hide/show fonts as they see fit but also hide all fonts inappropriate for their region. Unfortunately there is no documented API to find out if a font is hidden or not but you can use a registry setting.
Here is an article that explains how to do it: