或许,系统自带的字体不足以体现应用程序的魅力,对于表现极强的汉字来说,更是如此。这时候,我们就会想,要是能把网上下载的艺术字体塞到应用包中,那岂不美哉?那么,这可以实现吗?答案是Yes的。

接下来,阿拉就给大家分别演示WP 8.1两个开发框架中如何嵌入自定义字体。

为啥是两大框架?我们知道从7x到8.0的开发框架是Silverlight for Windows Phone,为了便于兼容和直接项目升级,在8.1中,微软的开发团队依然保留了这个框架;另外一个框架是从Win RT应用移植的API集,这个不用我多说了,猜也猜到了,就是方便编写与Windows 平板应用通用应用而准备的。

当然,如果仅仅打算开发WP应用,那么两个框架都可以用,你看哪个顺眼就用哪个,无所谓,大同小异;如果你计划编写通用程序,那只能选择运行时API集,即从RT应用移植过来的子集。

但我告诉你,无论是哪个框架,都没什么本质区别,至少用起来是一样的,微软后来许多开发技术都是从WPF中来的,保存了很好的延续性,你只要学会WPF,其他的框架就可以不学自通了。

总之,记住我的一句话:技术和知识永远是死的,人永远是活的,不要把知识学死了

运行时API

先看看在运行时API下如何嵌入自定义字体。这个就灰常简单了。

1、打开万能的VS,新建一个项目,项目模板选择“空白应用程序(Windows Phone)”,凡是括号中指明“Windows Phone”的模板都是基于从RT移植的运行时API的。如图。

2、打开“解决方案资源管理器”窗口(不要问我在哪里),用鼠标右键拼命点击项目名称节点,从弹出的菜单中选择“添加”-“现有项”,选择一个字体文件,字体可以网上下,多得是。

3、打开MainPage.xaml页,声明一个TextBlock元素,然后在XAML编辑器中选中这个TextBlock,接着打开属性窗口,找到FontFamily属性,点击下拉列表,你就会看到刚添加到项目的字体文件了。

注意看,添加到项目的自定义字体的右边会多了一个A符号。这样就会生成以下XAML:

<TextBlock FontFamily="禹卫书法行书简体.ttf#yuweij" ……

连URL都不用自己写了,从中我们看到引用字体文件的方法是“文件URL + # + 字体名称”。#后面就是字体的名字。
4、搞定,现在往TextBlock中放些文本。

        <TextBlock FontFamily="禹卫书法行书简体.ttf#yuweij" FontSize="50">《登黄鹤楼》<LineBreak/>崔颢<LineBreak/>昔人已乘黄鹤去,<LineBreak/>此地空余黄鹤楼。<LineBreak/>黄鹤一去不复返,<LineBreak/>白云千载空悠悠。<LineBreak/>晴川历历汉阳树,<LineBreak/>芳草萋萋鹦鹉州。<LineBreak/>日暮乡关何处是,<LineBreak/>烟波江上使人愁。</TextBlock>

现在,可以运行一下了。看看应用页面,是不是发现,气质马上提升了九个档次?

Silverlight框架

SL框架也是可以嵌入字体的,和上面的差不多。

1、新建一个项目,项目模板为“空白应用程序(Windows Phone Silverlight)”,凡是用SL框架的项目模板,括号中都会注明“Windows Phone Silverlight”。

版本就选8.1吧。

2、打开“解决方案资源管理器”窗口,右击项目节点,从弹出的菜单中选择“添加”-“现有项”,把自定义字体文件添加进来。

3、打开MainPage主页,声明一个TextBlock元素,然后在XAML编辑器中选中它,并打开属性窗口。找到FontFamily属性,从下拉列表中选择刚刚添加的字体。

这时候,生成的XAML中同样向我们展示了其URL格式:

 <TextBlock FontFamily="/CustFontfamilyAppSL;component/禹卫书法行书简体.ttf#yuweij"/>

格式同样是“字体文件URL + # + 字体名字”。

4、现在,可以往TextBlock中放点文本,以体验一下。

        <TextBlock FontFamily="/CustFontfamilyAppSL;component/禹卫书法行书简体.ttf#yuweij" FontSize="50">《秋窗风雨夕》<LineBreak/>秋花惨淡秋草黄,<LineBreak/>耿耿秋灯秋夜长。<LineBreak/>已觉秋窗秋不尽,<LineBreak/>那堪风雨助凄凉。<LineBreak/>……<LineBreak/>泪烛摇摇爇短檠,<LineBreak/>牵愁照恨动离情。<LineBreak/>谁家秋院无风入?<LineBreak/>何处秋窗无雨声。<LineBreak/>……<LineBreak/>不知风雨几时休,<LineBreak/>已教泪洒窗纱湿。</TextBlock>

然后,我们可以运行了,看看结果吧。

估计此刻有人已经在骂我是骗子了,为什么运行后看不到自定义的字体啊?

莫急,莫急,镇定是一笔财富,千万别急。先结束调试项目,然后打开“解决方案资源管理器”,找到刚才添加到项目的字体文件,并且选中它,然后打开属性窗口,将“生成操作”改为Resource。

现在,你再运行一次看看。

看到了吧,我这么诚实的人,怎么会骗你呢?

【WP 8.1开发】如何把自定义字体塞进应用里相关推荐

  1. 移动视频开发让我们把会议室装进口袋里

    移动视频开发让我们把会议室装进口袋里 在这个时代,手机被开发者们所赋予的意义已经远远超出了大众的期望,与上网.完成电子购物.读书.看杂志相比,似乎打电话.发信息这些原本最主要的部分却变成了辅助功能. ...

  2. iOS开发小结 - 使用自定义字体

    APP开发过程中,根据美工的需求可能会用到一些特殊的字体,然而在苹果自带字体中并没有,那就必须我们开发来来实现这些功能呢,下面以冬青黑体简体中文(Hiragino Sans GB)为例子给大家演示一下 ...

  3. android 开发app使用自定义字体

    在Android中是可以在开发app的时候使用自定义字体的. 在开发app的时候,界面可能要使用到第三方的字体,这时候就需要执行如下操作: 1.在项目中创建font文件夹,存放第三方字体的ttf文件 ...

  4. iOS游戏开发中使用自定义字体的方法

    方法1: 添加对应的字体(.ttf或.odf)到工程的resurce,使用cocos2d中的FontLabel库,FontLabel继承于UILabel,象UILabel一样使用就好了 fontNam ...

  5. 如何在iOS应用中使用自定义字体

    最近的项目需求需要使用新的字体,而且是在 所有地方 也就是说不管是普通的cell中的label,还是导航栏中的标题,都要使用设计新给出的字体.而新的字体包含在一个ttf的文件中. 乍一听到是挺浩大的一 ...

  6. android 开发 字体,Android开发使用自定义字体的实现方法

    释放双眼,带上耳机,听听看~! 1.Android系统默认支持三种字体,分别为:"sans", "serif", "monospace 2.在Andr ...

  7. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果

    有时候我们对自己开发的项目经常不满意,但是我们要达到自定义刷新动画的效果有一定的难度,别着急,下面爱站技术频道和大家分享Android开发中MJRefresh自定义刷新动画效果,一起来学习吧! [一] ...

  8. 01_MUI之Boilerplate中:HTML5示例,动态组件,自定义字体示例,自定义字体示例,图标字体示例

     1安装HBuilder5.0.0,安装后的界面截图如下: 2 按照https://www.muicss.com/docs/v1/css-js/boilerplate-html中的说明,创建上图的 ...

  9. Android软件开发之盘点自定义View界面大合集(二)

    Android软件开发之盘点自定义View界面大合集(二) - 雨松MOMO的程序世界 - 51CTO技术博客 雨松MOMO带大家盘点Android 中的自定义View界面的绘制 今天我用自己写的一个 ...

  10. ios 自定义字体_如何仅用几行代码在iOS应用中创建一致的自定义字体

    ios 自定义字体 by Yuichi Fujiki 藤木雄一 In this article, you'll learn how to create a unified custom look th ...

最新文章

  1. ASP.NET MVC使用Bootstrap系列(3)——使用Bootstrap 组件
  2. java初学之stream
  3. QMsgPack的用法DEMO
  4. javascript的stack overflow
  5. 【WPF学习】第五十章 故事板
  6. Zend Studio 10.6正式版注册破解地址
  7. python切片的对象_Python 对象切片
  8. 韩国咖啡连锁店Tom N Toms将发布TomTom代币
  9. JSK-22 排序后的数组删除重复数字【入门】
  10. 五大地形等高线特征_等高线顺口溜如何判别等值线的高度
  11. python中出现nameerror_python类中出现NameError的问题
  12. 平房误差函数_最小平方误差准则函数.ppt
  13. 科技热点周刊|马斯克卖掉特斯拉 10% 股票;Facebook 停用面部识别系统;微软拥抱 Metaverse;雅虎退出中国
  14. 数学基础一:直线方程Ax+By+C=0
  15. JAVA面试、笔试题
  16. 9flash:个人网站商业化之蜕
  17. 2021年建筑架子工(建筑特殊工种)考试题库及建筑架子工(建筑特殊工种)模拟试题
  18. 同位素标记其他的研究方法和技术
  19. 微领地商业模式开发 软件开发
  20. mount -o rw,remount /system /system’ not in /proc/mounts

热门文章

  1. RTCM3消息类型介绍
  2. Winform开发框架的重要特性总结
  3. 软考资料已经 ready,你get 到了吗?
  4. 汇编语言中sbb是什么意思_汇编语言的所有指令
  5. Python调用Cplex:安装,测试,实例
  6. 【原创】我的辞职申请(2005-10-27)
  7. 它!5 年代替狂卷的 CNN!
  8. 深度学习与围棋,零开始一步步实现自己的“AlphaGo”
  9. RemObjects SDK ThDataSet总结
  10. text——Android下的默认字体详解