在WPF桌面应用程序中使用Google Web Font的任何方法

Pau*_*ter 4 wpf webfonts

我正在创建一个WPF应用程序,并尝试将用户界面的样式与现有网站相匹配.该网站使用Lato作为其默认字体,默认情况下在Windows上不可用.我想使用Lato,但我不能要求用户安装该字体.有没有办法让WPF使用通过Google Web Font服务提供的字体定义,或以其他方式设置它,以便不需要手动安装字体?

Phi*_*eck 12

当然可以,简单的方法是将您编译到应用程序中的字体资源:

首先,从谷歌网络字体下载TTF.在您的示例链接中,找到页面底部的"在Google Web Fonts中打开Lato"链接.这会将字体添加到"集合"中.在结果页面中,靠近顶部的是一个标题为"下载您的收藏"的较小链接,它将为您提供zip文件中的TTF字体文件.

接下来,将字体作为资源嵌入WPF应用程序中.将文件添加到项目中,并确保为编译操作选择"资源".然后,只需将FontFamily属性更改为资源名称而不是字体名称,即可在XAML中使用您的字体: <TextBlock FontFamily="/Resources/#Lato">Lato Text Here</TextBlock>.有关更多信息,请参阅有关嵌入字体MSDN文章.

您还可以通过将所需FontFamily的元素或容器的属性设置为新FontFamily对象来按需下载字体- 使用带有URI的构造函数并使用TTF的URI.我不相信您可以使用Google网址直接执行此操作,因为Google API会假定网页访问并提供脚本和/或CSS以及字体.另请注意,这可能需要您的应用已经要求的一些额外权限.