是否可以一次为所有控件设置FontSize?

时间:2019-02-05 06:26:44

标签: c# wpf

我需要立即为wpf-layout中的所有控件设置FontSize属性。 我的意思是我不想为标签设置它,然后为chechboxes等设置它。我想为所有支持此属性的控件设置它。

因此,在模块的“设置”中,我具有按钮和其余控件的字体大小值。对于按钮,我是这样设置字体大小的:

<Style TargetType="Button">
    <Setter Property="FontSize" Value="{Binding Source={x:Static properties:Settings.Default}, Path=ButtonFontSize}" />
</Style>

现在我需要为其余控件设置FontSize。

3 个答案:

答案 0 :(得分:1)

我猜你可以在窗口上设置它,因为它应该继承自父控件。

<Style TargetType="{x:Type Window}">
     <Setter Property="FontSize" Value="24" />
</Style>

答案 1 :(得分:1)

this answer复制。


我会这样:

<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>

答案 2 :(得分:-1)

如果您想为一个特定的小提琴的所有控件设置字体大小,可以使用

<Window.Resources>
  <Style TargetType="{x:Type TextBox}">
    <Setter Property="FontSize" Value="24" />
  </Style>      
  <Style TargetType="{x:Type Textblock}">
    <Setter Property="FontSize" Value="20" />
  </Style>
</Window.Resources>

如果您有很多样式,并且希望保持变量可编辑,则可以像上面这样定义它:

<Window.Resources>
  <System:Double x:Key="stdFontSize">15</System:Double>

  <Style TargetType="{x:Type TextBox}">
    <Setter Property="FontSize" Value="stdFontSize" />
  </Style>      
  <Style TargetType="{x:Type Textblock}">
    <Setter Property="FontSize" Value="stdFontSize" />
  </Style>
</Window.Resources>