【问题标题】:C# Changing XAML style dynamically in Code BehindC# 在代码隐藏中动态更改 XAML 样式
【发布时间】:2014-04-02 15:11:33
【问题描述】:

我在 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;

    }

【问题讨论】:

  • 你在哪里声明 currentFontSize 和 textFontSize?
  • 不,我不只是从 xaml 中调用它们。

标签: c# wpf xaml


【解决方案1】:

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

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

例如&lt;Window FontSize="{Binding FontSize}" ...&gt;

见:WPF - change global font size at runtime

【讨论】:

  • 我只是想在按下按钮时更改样式(应用该样式的条件。
猜你喜欢
  • 2012-05-07
  • 2011-12-19
  • 2012-03-09
  • 2010-11-03
  • 2013-01-10
  • 2012-05-30
  • 1970-01-01
  • 2018-11-16
  • 2015-08-10
相关资源
最近更新 更多