【发布时间】:2020-09-22 12:47:16
【问题描述】:
在我的 WPF 应用程序中,我在 App.xaml 文件中包含了我正在使用的字体,如下所示:
<Application x:Class="STFAPP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:STFAPP"
StartupUri="Views/LoginWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<!--Included Fonts-->
<FontFamily x:Key="TheSans">pack://application:,,,/Style/Fonts/#TheSans</FontFamily>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Style/TextBlock.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
TextBlock.xaml 是一个包含TextBlock 样式的资源字典:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type TextBlock}" x:Key="TitleStyle">
<Setter Property="FontFamily" Value="{StaticResource TheSans}" />
<Setter Property="FontSize" Value="15" />
</Style>
我在TextBlock 中使用了如下样式:
<TextBlock Text="Hello" Style="{StaticResource TitleStyle}"/>
字体未加载!?
如果我避免使用分离的资源字典(TextBlock.xaml 文件)并将样式直接粘贴到App.xaml,字体将成功加载:
<Application x:Class="STFAPP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:STFAPP"
StartupUri="Views/LoginWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<!--Included Fonts-->
<FontFamily x:Key="TheSans">pack://application:,,,/Style/Fonts/#TheSans</FontFamily>
<Style TargetType="{x:Type TextBlock}" x:Key="TitleStyle">
<Setter Property="FontFamily" Value="{StaticResource TheSans}" />
<Setter Property="FontSize" Value="15" />
</Style>
</ResourceDictionary>
</Application.Resources>
我想将多个资源字典文件中的样式分开来组织我的应用程序文件。
如果有任何帮助,我将不胜感激
【问题讨论】:
-
您是否尝试在 TextBlock.xaml 文件中定义 FontFamily?
标签: c# wpf xaml resourcedictionary app.xaml