I'm creating a WPF app and I would like to know the best way to be able to change the font size for every element in the ui. Do I create a resource dictionary and set Styles to set the font size for all the controls I use?
What is the best practice?
I'd do it this way:
<Window.Resources> <Style TargetType="{x:Type Control}" x:Key="baseStyle"> <Setter Property="FontSize" Value="100" /> </Style> <Style TargetType="{x:Type Button}" BasedOn="{StaticResource baseStyle}"></Style> <Style TargetType="{x:Type Label}" BasedOn="{StaticResource baseStyle}"></Style> <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource baseStyle}"></Style> <Style TargetType="{x:Type ListView}" BasedOn="{StaticResource baseStyle}"></Style> <!-- ComboBox, RadioButton, CheckBox, etc... --> </Window.Resources>
That way, if I want to change ALL the controls, I'd just have to change the "baseStyle" style, the rest would just inherit from it. (That's what BasedOn property those, you can also extend the base style if you create other setters inside of the inherited style)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With