有没有办法以编程方式更改字体大小?

时间:2015-03-04 12:57:26

标签: c# wpf

有没有办法以编程方式更改字体大小?

<Window.Resources>
    <Style TargetType="{x:Type Button}">
        <Setter Property="FontFamily" Value="Arial Narrow"/>
        <Setter Property="FontSize" Value="14"/>
    </Style>
    <Style TargetType="{x:Type Label}">
        <Setter Property="FontFamily" Value="Arial Narrow"/>
        <Setter Property="FontSize" Value="14"/>
    </Style>
</Window.Resources>

在这种情况下,我想让客户能够将字体大小从14改为另一种字体大小。

2 个答案:

答案 0 :(得分:1)

例如,客户正在通过文本框输入更改标签的字体大小。

//XAML

<Grid>
        <TextBox x:Name="box1" HorizontalAlignment="Left" Height="23" Margin="90,192,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
        <Label x:Name="label1" Content="This is a label" HorizontalAlignment="Left" Margin="90,98,0,0" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="btn1" Content="Enter" HorizontalAlignment="Left" Margin="106,258,0,0" VerticalAlignment="Top" Width="75" Click="btn1_Click"/>
    </Grid>

//Programmatically changing font
private void btn1_Click(object sender, RoutedEventArgs e)
        {
            label1.FontSize = int.Parse(box1.Text);
        }

答案 1 :(得分:-1)

我这样做。

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

这样,如果我想更改所有控件,我只需要更改&#34; baseStyle&#34;风格,其余的只会继承它。 (那就是那些基于NonOn属性的属性,如果你在继承的样式中创建其他setter,你也可以扩展基本样式)你可以使用不同的不同样式。

您可以像这样以编程方式执行

private void Button_Click(object sender, RoutedEventArgs e)
    {
        uiLabel.FontWeight = FontWeights.Bold;
        uiLabel.FontStyle = FontStyles.Italic;
        uiLabel.FontSize = 16;
    }