We all know that the Control base class has a Scale method. The problem is this: it's absolute crap. While it admirably scales all of the controls, it does not scale the fonts. So all my my labels, text boxes, and buttons look so very awkward. It would be so simple to just loops through all of the form's controls and change the font, but Control.Font.Size is read-only so foreach(Control C in this.Controls){C.Font.Size = C.Font.Size * .8f;} won't do the trick.
What is the best way to scale the font of every control in a form when the form itself is scaled?