zoukankan      html  css  js  c++  java
  • 【WP 8.1开发】如何把自定义字体塞进应用里

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

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

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

  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/tcjiaan/p/3919246.html
Copyright © 2011-2022 走看看