WPF 引用字体文件资源
外部字体文件
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 引用字体文件资源的更多相关文章
- WPF 将字体文件 添加到 资源文件,并在后台代码使用
先看结果 1.将字体文件,导入到资源文件,如: 添加后,自动生成 2.在窗体xaml中添加如: 3.在xaml窗体对应的cs文件中,为TextBlock指定字段 创建一个字段对象,并指定字体文件的所在 ...
- WPF 嵌入字体文件
官方说明文档:将字体与应用程序一起打包 https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/advanced/packaging-fonts-w ...
- WPF 引用 ttf文件
1.在 http://www.iconfont.cn/ 下载图标,将图标加入购物车中,统一下载 2.下载到本地,解压后文件夹如下图.打开 demo_unicode.html 可以查看下载的图标信息和引 ...
- WPF 引用DLL纯图像资源包类库中的图片
原文:WPF 引用DLL纯图像资源包类库中的图片 1.建立WPF应用程序 过程略. 2.创建类库项目(图片资源包) 创建图片资源类库项目MyImages,删除 ...
- wpf中内置资源文件
wpf中包含三种文件类型 资源文件:编译到可执行或库 WPF 程序集中的数据文件. 内容文件:与可执行 WPF 程序集具有显式关联的独立数据文件. 源站点文件:与可执行 WPF 程序集没有关联的独立数 ...
- WPF中Style文件的引用——使用xaml代码或者C#代码动态加载
原文:WPF中Style文件的引用--使用xaml代码或者C#代码动态加载 WPF中控件拥有很多依赖属性(Dependency Property),我们可以通过编写自定义Style文件来控制控件的外观 ...
- WPF 中style文件的引用
原文:WPF 中style文件的引用 总结一下WPF中Style样式的引用方法: 一,内联样式: 直接设置控件的Height.Width.Foreground.HorizontalAlignment. ...
- wpf资源嵌套,一个资源引用另外一个资源,被引用的资源应该声明在前面
在wpf的XAML的Window.Resources中,一个资源引用另外一个资源,出现如下错误: “错误 1 “{DependencyProperty.UnsetValue}”不是 Setter 上“ ...
- DSAPI多功能组件编程应用-使用外部字体(包括资源文件)
在软件开发过程中,尤其是比较个性化的程序,有时会需要使用非安装字体文件,比如发布的时候附带了一个专用字体,或者该字体文件直接被放入项目资源,当不希望把这个字体安装到用户的操作系统但又想使用它时,本示例 ...
- WPF之神奇的资源
原文:WPF之神奇的资源 WPF中的资源有两种,一种称为"程序集资源"(assembly resource),另一种称为"对象资源"(object resour ...
随机推荐
- 入门级java开发环境的配置安装
为了能够在计算机上开发Java程序和运行Java程序,就需要在Windows操作系统上配置Java开发环境. 首先,安装JDK: 1.在Oracle官网上下载JavaSE: 2.在Download下载 ...
- redhat7.6配置本地yum源
redhat7.6配置本地yum源 将光盘或者iso文件挂载到 /mnt 目录下 查看配置文件 [root@zqds122 mnt]# cat /etc/yum.repos.d/rh7ISO.repo ...
- Java VSCode 基础教学
VSCode 超全设置1.下载2.插件安装3.项目创建4.设置5.快捷键6.优化7.导出 Jar 包 VSCode 超全设置 VSCode(Visual Studio Code) 是一款 Micros ...
- 如何像Facebook一样构建数据中心 – BGP在大规模数据中心中的应用(3)
如何像Facebook一样构建数据中心 – BGP在大规模数据中心中的应用(3) superrace• 18-06-12 作者简介:史梦晨,曾就职于国内金牌集成商, 现就职于EANTC( 欧洲高级网络 ...
- 平滑arctan的值,将值映射为0~2π
欢迎访问我的个人博客:xie-kang.com 原文地址 在某些场景计算夹角时,会期望带上象限信息. 此时atan函数将不再满足我们的使用要求,因为atan返回值为 -π/2 ~ π/2,它没有携带有 ...
- ajax缓存和fiddler——http协议调试代理工具
1.在ie9下,ajax请求可能会有缓存,需要在请求上一个随机数 如:Math.random(); 2.fiddler2 打开以后可以查看所有的http请求情况,也可以使用本地脚本代替要请求的js文件 ...
- laravel whereHas sum & addSelect sum
$users = User::select('id', 'username', 'coins', 'cut') ->when(request()->has('agent_tip_sum') ...
- Android笔记--通过MediaStore查询图片
相关描述 已经完成发送彩信功能之后,就来继续向前走一步,来到MediaStore查询图片界面啦! 具体步骤实现 1.简简单单地一个界面 <?xml version="1.0" ...
- Android笔记--发送彩信
发送彩信 界面还是那个界面,图片也实现了从相册进行选择图片,选择完成之后,就会回到界面里面的功能: 下面接着实现发送彩信的完整版: 具体实现如下: 界面代码不再展示,主要着重于后台的代码编写啦! 1. ...
- Android笔记--Android studio里面打开数据库详解
1.下载Database Navigator插件,然后需要重启Android studio 2.然后会总界面这里.出现这样一个图标 然后选中Database Brower: 3.弹出这样一个界面 然后 ...