Wpf 如何在代码中设置FontFamily

Wpf 如何在代码中设置FontFamily,wpf,Wpf,我正在创建一个WPF应用程序,其中需要使用自定义字体。A创建了一个字体资源库,如下所述。以下示例显示了如何在XAML中设置字体系列: <Run FontFamily="/FontLibrary;Component/#Kootenay" FontSize="36"> ABCDEFGHIJKLMNOPQRSTUVWXYZ </Run> ABCDEFGHIJKLMNOPQRSTUVWXYZ 如何在代码中设置字体系列?为跑步指定一个名称,然后使用以下内容构建字体系列:

我正在创建一个WPF应用程序,其中需要使用自定义字体。A创建了一个字体资源库,如下所述。以下示例显示了如何在XAML中设置字体系列:

<Run FontFamily="/FontLibrary;Component/#Kootenay" FontSize="36">
  ABCDEFGHIJKLMNOPQRSTUVWXYZ
</Run>

ABCDEFGHIJKLMNOPQRSTUVWXYZ

如何在代码中设置字体系列?

为跑步指定一个名称,然后使用以下内容构建字体系列:

Xaml:


首先,给元素一个名称

<Run x:Name="someNameHere">ABCDEFGHIJKLMNOPQRSTUVWXYZ</Run>


没有接受2个字符串的FontFamily构造函数。它不工作。我得到未处理的异常:System.ArgumentException:URI必须是绝对值。在我更改为UriKind.Absolute后,我得到未处理的异常:System.UriFormatException:无效URI:无法确定URI的格式。请尝试切换到完整包:URI格式:yeap就是这样。正确的uri是新uri(“pack://application:,,,/FontLibrary;Component/#Kootenay“,UriKind.Absolute)
MyTextRun.FontFamily = new FontFamily(new Uri("/FontLibrary;Component/#Kootenay", UriKind.RelativeOrAbsolute), "Kootenay");
MyTextRun.FontSize = 36;
<Run x:Name="someNameHere">ABCDEFGHIJKLMNOPQRSTUVWXYZ</Run>
someNameHere.FontFamily = new FontFamily("Monospace");
someNameHere.FontFamily = new FontFamily("Comic Sans MS");
someNameHere.FontFamily = new FontFamily("Times New Roman");