【问题标题】:WPF - Import custom fonts in C#WPF - 在 C# 中导入自定义字体
【发布时间】:2016-03-31 12:31:18
【问题描述】:

我想在我的 WPF 应用程序上导入自定义字体,以便它们无需客户端安装即可工作。

到目前为止我找到的所有答案都在 XAML 中,我只想在 C# 中进行。

我的字体在 Resources/Fonts/ 中。

我已经试过了:

 Fonts.GetFontFamilies(new Uri("pack://application:,,,/Resources/Fonts/#"));

但是没有用。

【问题讨论】:

    标签: c# wpf fonts


    【解决方案1】:

    我做了所有 bluetoothfx 说的事情,但还是没用。

    然后我将字体的 Build 操作(它是 Content)更改为 Embedded Resource,并且它起作用了。资源也适合我。

    还是谢谢。

    【讨论】:

      【解决方案2】:

      我认为你的工作方式行不通。

      首先创建一个名为 fonts 的文件夹,然后将字体添加到您的项目中,将其 Build Action 更改为 Content。

      现在您需要找到字体的内部名称(真实名称)而不是字体文件名。打开字体文件就可以拥有了,就可以在上面看到了。

      现在编辑 App.xaml

      <Application.resources>
      <style x:key="MYFONT_INTERNAL_NAME">
          <setter property="TextElement.FontFamily" 
              value="pack://application:,,,/fonts/#MYFONT_INTERNAL_NAME" />
      </style>
      

      现在在你的代码中使用它:

      <TextBlock Style="{StaticResource MYFONT_INTERNAL_NAME}" FontSize="16" Text="Font Style" />
      

      要了解更多请在此处搜索: http://www.alteridem.net/2014/02/24/custom-fonts-in-wpf-applications/

      【讨论】:

      • 如果我有多种字体,我可以添加几个
      • 创建一个设置菜单,您可以从中选择字体名称我的意思是,您让您的用户选择字体并尝试在 ViewModel 上绑定字体名称 Binding{FONT_NAME_PROPERTY}。然后传递字体名称。希望这个概念有所帮助。
      • 我已将其放入我的 App.xaml:&lt;Application.Resources&gt; &lt;Style x:Key="Lato Light"&gt; &lt;Setter Property="TextElement.FontFamily" Value="pack://application:,,,/fonts/#Lato Light"/&gt; &lt;/Style&gt; &lt;/Application.Resources&gt;
      猜你喜欢
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 2014-05-05
      • 2021-10-23
      • 2018-03-10
      • 2015-01-07
      • 1970-01-01
      • 2020-12-21
      相关资源
      最近更新 更多