【发布时间】:2018-03-12 14:23:32
【问题描述】:
我在App.xaml 中创建了一个全局字体资源,如下所示:
<Application.Resources>
<ResourceDictionary>
<FontFamily x:Key="GlobalFontLight">Arial</FontFamily>
<FontFamily x:Key="GlobalFont">Segoe UI</FontFamily>
<FontFamily x:Key="GlobalFontBold">Caibri</FontFamily>
</ResourceDictionary>
</Application.Resources>
在 MainPage 中我添加了一个 TextBlock:
<TextBlock Text="Some text" FontFamily="{StaticResource GlobalFont}" Foreground="Black"/>
<TextBlock Text="Some text 2" FontFamily="{StaticResource GlobalFontLight}" Foreground="Black"/>
<TextBlock Text="Some text 3" FontFamily="{StaticResource GlobalFontBold}" Foreground="Black"/>
没关系,TextBlock 使用我的全局字体。
现在,我想更改应用程序资源中的全局字体。我尝试了下一个代码:
Application.Current.Resources["GlobalFont"] = new FontFamily("Arial");
但什么也没发生,TextBlock 仍然使用旧字体。如果我在InitializeComponent(); 之前运行此代码,那么它可以按我的意愿工作,但在那之后就不行了。任何人都知道我做错了什么?如何实现这种字体的动态变化?
【问题讨论】: