Windows Phone Emoji

    今天基于项目的需要,研究了一下windows phone 8里面的Emoji实现。如果大家用过wp版本的微信或者qq,相比一定对它里面的表情符号影像深刻吧!是的,只要你细看一下,其实在微信里面包括两种表情符号,一种是系统自带的emoji,另一种就是微信自己加上去的。对于系统自带的我们稍后来说,让我们先看一下微信是如何自定义表情的呢?其实很简单,它只要在定义家口的时候约定一张对应表格,比如“微笑”对应一个编码,然后再对应一种图片。类似于这种:,然后图片存放在本地,根据对应文本信息设计一套算法解析对应的图片。

     那么系统里面自带的emoji,我们应该怎样去获取呢?让我们先来讲一件emoji的实现原理吧!其实不同的emoji都有单独的对应编码,比如在windows phone里面我们可以给一个textblock.text赋值为:ud83dude01,它将显示一张笑脸,对应的常用emoji编码为:

 switch (count)
            {
                case 1:
                    myRun1.Text = "ud83dude01";
                    break;
                case 2:
                    myRun1.Text = "ud83dude02";
                    break;
                case 3:
                    myRun1.Text = "ud83dude03";
                    break;
                case 4:
                    myRun1.Text = "ud83dude04";
                    break;
                case 5:
                    myRun1.Text = "ud83dude05";
                    break;
                case 6:
                    myRun1.Text = "ud83dude06";
                    break;
                case 7:
                    myRun1.Text = "ud83dude07";
                    break;
                case 8:
                    myRun1.Text = "ud83dude08";
                    break;
            }
View Code

如果你需要更多的话,可以将后面的16位编码一次加一,就可以变换成另一种emoji,这是对应的编码表格:,当然wiki里面还有更多。其实如果利用keydown事件测试的话,我们发现按下不管哪个emoji的时候,产生的key都是unknow,这就是说我们不能通过获取key的方式,来显示对应的emoji,那么我们可以不可以直接接受textblock里面emoji输入之后的text呢?其实这是可以的,我们只要自己去摘取我们需要的emoji,然后显示出来就可以了。

原文地址:https://www.cnblogs.com/xiaocai20091687/p/3641630.html