外部字体文件

1.后台代码引用字体

将一个名为“ChineseCharacterSpecialFont.ttf”的ttf文件,放在桌面路径,后台引用方式如下:

1 var ttfFilePath = @"C:\Users\user\Desktop\";
2 HanziTextBlock.FontFamily = new System.Windows.Media.FontFamily(new Uri(ttfFilePath), "./#楷体_GB2312");

路径Uri只需要文件夹就行了,后面一个参数family为 “./#指定字体类型名称“。

注意:

  • 路径Uri不是ttf文件完整路径;ttf文件所在文件夹,后需要添加”/“或者”\\“;
  • 参数family中不能少了./#任何一个特殊字符。否则界面显示的字,就不是指定字体中的字符显示了。
  • 引用字体,与字体文件的名称无关,只能引用字体类型名称。

#后面表示字体类型名称,可以通过双击打开ttf文件查看:

2.WPF-Xaml资源引用

把一个名为“ChineseCharacterSpecialFont.ttf”的ttf文件,放在WpfApp2工程下。引用方式如下:

1     <Window.Resources>
2 <FontFamily x:Key="HanziCharacterFontFamily">pack://application:,,,/WpfApp2;component/#楷体_GB2312</FontFamily>
3 </Window.Resources>
4 <Grid>
5 <TextBlock x:Name="HanziTextBlock" Text="a" FontFamily="{StaticResource HanziCharacterFontFamily}"
6 FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center"/>
7 </Grid>

本地安装字体文件

本地已安装的字体,可以通过Fonts.SystemFontFamilies获取。

Xaml字体就不用说了。后台设置字体类型,可以通过:

1     var systemFontFamilies = Fonts.SystemFontFamilies;
2 var songTiFamily = systemFontFamilies.FirstOrDefault(i=>i.Source=="KaiTi");
3 HanziTextBlock.FontFamily = songTiFamily;

系统字体FontFamily数据,Source名称是英文的。怎么通过中文名称获取相应字体?

FamilyNames为一个含有多语言项的字典,Key为语言项,Value为字体类型名称。

 1     var systemFontFamilies = Fonts.SystemFontFamilies;
2 FontFamily filteredChineseFamily = null;
3 foreach (FontFamily family in systemFontFamilies)
4 {
5 LanguageSpecificStringDictionary familyNames = family.FamilyNames;
6 if (familyNames.ContainsKey(XmlLanguage.GetLanguage("zh-cn")))
7 {
8 if (familyNames.TryGetValue(XmlLanguage.GetLanguage("zh-cn"), out var chineseFontName)&&chineseFontName=="楷体")
9 {
10 filteredChineseFamily = family;
11 break;
12 }
13 }
14 }
15 HanziTextBlock.FontFamily = filteredChineseFamily;

关键字:后台代码引用ttf字体,WPF前端引用ttf字体

WPF 引用字体文件资源的更多相关文章

  1. WPF 将字体文件 添加到 资源文件,并在后台代码使用

    先看结果 1.将字体文件,导入到资源文件,如: 添加后,自动生成 2.在窗体xaml中添加如: 3.在xaml窗体对应的cs文件中,为TextBlock指定字段 创建一个字段对象,并指定字体文件的所在 ...

  2. WPF 嵌入字体文件

    官方说明文档:将字体与应用程序一起打包 https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/advanced/packaging-fonts-w ...

  3. WPF 引用 ttf文件

    1.在 http://www.iconfont.cn/ 下载图标,将图标加入购物车中,统一下载 2.下载到本地,解压后文件夹如下图.打开 demo_unicode.html 可以查看下载的图标信息和引 ...

  4. WPF 引用DLL纯图像资源包类库中的图片

    原文:WPF 引用DLL纯图像资源包类库中的图片 1.建立WPF应用程序              过程略.   2.创建类库项目(图片资源包)       创建图片资源类库项目MyImages,删除 ...

  5. wpf中内置资源文件

    wpf中包含三种文件类型 资源文件:编译到可执行或库 WPF 程序集中的数据文件. 内容文件:与可执行 WPF 程序集具有显式关联的独立数据文件. 源站点文件:与可执行 WPF 程序集没有关联的独立数 ...

  6. WPF中Style文件的引用——使用xaml代码或者C#代码动态加载

    原文:WPF中Style文件的引用--使用xaml代码或者C#代码动态加载 WPF中控件拥有很多依赖属性(Dependency Property),我们可以通过编写自定义Style文件来控制控件的外观 ...

  7. WPF 中style文件的引用

    原文:WPF 中style文件的引用 总结一下WPF中Style样式的引用方法: 一,内联样式: 直接设置控件的Height.Width.Foreground.HorizontalAlignment. ...

  8. wpf资源嵌套,一个资源引用另外一个资源,被引用的资源应该声明在前面

    在wpf的XAML的Window.Resources中,一个资源引用另外一个资源,出现如下错误: “错误 1 “{DependencyProperty.UnsetValue}”不是 Setter 上“ ...

  9. DSAPI多功能组件编程应用-使用外部字体(包括资源文件)

    在软件开发过程中,尤其是比较个性化的程序,有时会需要使用非安装字体文件,比如发布的时候附带了一个专用字体,或者该字体文件直接被放入项目资源,当不希望把这个字体安装到用户的操作系统但又想使用它时,本示例 ...

  10. WPF之神奇的资源

    原文:WPF之神奇的资源 WPF中的资源有两种,一种称为"程序集资源"(assembly resource),另一种称为"对象资源"(object resour ...

随机推荐

  1. 常用的typedef 定义

    今天开始学习VC++基础,系统编程栏目下都是WinAPI和MFC的内容,此为浏览博客园时学习的一篇文章,觉得很实用,拿来做笔记. 出处见最底部. 三行代码:     typedef char CHAR ...

  2. consul 服务注册与更新

    服务注册与发现是微服务架构中不可或缺的重要组件. 起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问.直到后来出现了多个节点的分布式架构,起初的解决手段是在服 ...

  3. Fastboot_Cmd

    /* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- */adb命令:/* -*-* ...

  4. 微信小程序中如何上传和下载文件

    .wxml <button bindtap="chooseFile">选择文件</button> <view>请输入下载链接</view& ...

  5. meterpreter的使用

    meterpreter是metasploit中的一个杀手锏,通常在漏洞利用成功后,会返回给攻击者一个攻击通道,其中有很多自动化操作 场景布置 生成木马 首先,我们使用metasploit中的另一个后门 ...

  6. Android笔记--修改Device File Explorer的文件打开方式

    在首次打开该文件时,不小心选错了打开方式,导致以后每次打开也是同样的打开方式,也不会弹出第一次那样的打开方式的选择弹窗 在这里提供修改文件的默认打开方式的方法: 首先通过File->settin ...

  7. Vue前端框架的基础学习,为之后打个基础

    Vue 首先,在使用vue之前,我们需要先下载好一个vue.js文件,才能继续进行vue的学习,下载教程如下: 1.进入官网:https://v2.vuejs.org/ 2.选择页面中的Learn,再 ...

  8. Double-Checked Locking 双重检查锁问题

    Code Correctness: Double-Checked Locking Abstract Double-checked locking 是一种不正确的用法,并不能达到预期目标. Explan ...

  9. Linux 命令之 tar 操作符

    tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个 ...

  10. 使用requests的session发送请求

    import requests # (1)网址 url = 'https://www.xslou.com/login.php' # (2)输入登录框-->输入密码框-->点击登录找到php ...