我有它我的自定义控件。我需要在应用程序的资源中使用dll中的字体。
我编写了代码,但如果在PC上安装了字体,它就能正常工作。
new Typeface(new FontFamily(new Uri(" pack:// application:,,, / Astro; Component / Fonts")
如何解决它的问题?我需要在没有安装的情况下使用字体。
答案 0 :(得分:0)
如果将自定义控件封装在自己的程序集中,则不应该从那里引用应用程序程序集。将字体文件作为资源嵌入自定义控件项目中,或者定义一个独特的样式项目,然后从自定义控件和应用程序中引用它。
然后,您可以将XAML字体系列定义并用作资源,如下所示。 XAML位于Fonts.xaml
内,该文件位于与字体文件相同的文件夹中:
<FontFamily x:Key="ColaborateThin">./#Colaborate Thin</FontFamily>
<FontFamily x:Key="ColaborateRegular">./#Colaborate Regular</FontFamily>
<FontFamily x:Key="ColaborateBold">./#Colaborate Bold</FontFamily>
<FontFamily x:Key="DroidSansRegular">./#Droid Sans Regular</FontFamily>
<FontFamily x:Key="SegoeRegular">Segoe</FontFamily>
<Style x:Key="H1">
<Setter Property="TextElement.FontFamily" Value="{StaticResource ColaborateThin}" />
<Setter Property="TextElement.FontSize" Value="21px" />
<Setter Property ="TextElement.Foreground" Value="{StaticResource PrimaryBrush}" />
</Style>