C#在Code Behind中动态更改XAML样式

时间:2014-04-02 15:11:34

标签: c# wpf xaml

我在xaml中创建了样式,但是在我后面的代码中我收到一个NULL值我应该怎么做这个代码?对不起我的新问题,我想学习。

这是xaml代码:

 <Style x:Key="TextBoxProperties" x:Name="TextBoxProperties" TargetType="TextBlock">
        <Setter x:Name="textFontSize" Property="FontSize" Value="24"></Setter>
        <Setter x:Name="textTypography" Property="FontFamily" Value="Resources/Fonts/Bryant-BoldAlt_Italic__Santillana.ttf#Bryant"></Setter>
    </Style>  

这是背后的代码:

 private void btnIncreaseFont_Click(object sender, RoutedEventArgs e)
    {
        if (currentFontSize < MAX_FONTSIZE)
        {
            if (btnDecreaseFont.IsEnabled == false)
                btnDecreaseFont.IsEnabled = true;
            currentFontSize += 2;
            TextBoxProperties.Setters.Add(textFontSize);
            TextBoxProperties.Setters.Add(textTypography);
            UpdateCurrentPage();
        }
        else
            btnIncreaseFont.IsEnabled = false;

    }

1 个答案:

答案 0 :(得分:2)

如果要在运行时更改全局字体大小/类型,最好将其设置在父容器中,例如Window和子元素将继承该值。

您可以将全局字体大小绑定到DataContext(VM)

中的值

E.g。 <Window FontSize="{Binding FontSize}" ...>

请参阅:WPF - change global font size at runtime