Search code examples
wpfwindowfont-size

How is the default font size for a wpf window determined?


I understand that in WPF the font size used by a control is determined by the parent control, unless an override is defined.

Given that I don't define a font-size anywhere in my application, I assume that the default font-size is that configured for the top-level Window.

Is this value determined by the system the application is running on (and if so where?); or is it determined by some built-in WPF default value (and if so what is it?)


Solution

  • The default font size is determined by the FontSize dependency property of the TextElement class: https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Documents/TextElement.cs,e28640b48d79de57. It defaults to SystemFonts.MessageFontSize which has a default value of 12.

    The Control base class them adds itself as an owner of this dependency property and defines its own FontSize property that can any control can set to a custom value.

    Please refer to the following blog post for more information about this: https://blog.davidpadbury.com/2008/08/30/change-the-default-font-of-a-wpf-application/.