【问题标题】:Using a font resource from another assembly使用来自另一个程序集的字体资源
【发布时间】:2013-07-09 20:32:38
【问题描述】:

目前,我有一个包含主题/模板和字体(作为资源)的类库项目。然后,我在我的主 WPF 应用程序项目中引用名为 Shared.UI 的项目。

我使用以下方式引用它:

<ResourceDictionary Source="pack://application:,,,/Shared.UI;component/Skin.xaml" />

在 MergedDictionary 标记内。

我遇到的问题是主 WPF 应用程序无法使用项目中的字体,它们是作为资源构建的。

在我的 Shared.UI/Skins.xaml 文件中,我有:

<!-- LABEL -->
<Style TargetType="{x:Type Label}">
    <Setter Property="FontFamily" Value="./resources/#Helvetica Neue" />
    <Setter Property="Foreground" Value="{DynamicResource PrimaryBlue}" />
    <Setter Property="FontSize" Value="12" />
</Style>

我认为这在我的主 WPF 应用程序中不起作用,因为它在自己的 ./resources 中查找 #Helvetica Neue 并且找不到它(因为它在 Shared.UI 中)。我还尝试在资源文件中明确引用/Shared.UI;component/resources/#Helvetica Neue,但这对我不起作用。

【问题讨论】:

    标签: wpf fonts resources label resourcedictionary


    【解决方案1】:

    查看此链接,希望对您有所帮助 http://social.msdn.microsoft.com/Forums/vstudio/en-US/068d9600-93e6-45e4-af37-2b04e4b41855/how-to-load-a-font-from-a-resource-only-dll-in-c

    <TextBlock><Run FontFamily="/FontClassLibrary;Component/#YourFontName" FontSize="20">Your Text</Run></TextBlock>
    

    【讨论】:

    • 虽然理论上可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。这样,如果链接失效,您的答案仍然有用。您还需要说明如何回答这个问题以及为什么会解决这个问题。
    • 有什么方法可以在 Style 中定义它,还是我需要始终在其中包含 RUN 标签才能正确显示字体?如果我必须在每个控件中都这样做,我可能只是将字体导入到主项目中......它似乎不太可扩展。
    • 呸,那么将fonts 文件夹复制到特定项目会更容易更干净。
    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    相关资源
    最近更新 更多