zoukankan      html  css  js  c++  java
  • 我的第一个WP8.1应用总结

      我的LUMIA925已经买了很久了,想自己开发WP应用放在上面,却一直想不到有什么特别的想法和需要。前几天的事情正好让我有了这个机会。

      前几天在客户机房工作的时候,同事打电话来说另一个客户由于换了电脑,需要发新的激活码过去激活我们的软件。我不得不打开本本,把同事发到手机QQ的机器码输入到本本上的注册机程序里,再把生成的激活码输入到手机发过去。对于在外面本本不能上网的情况这真是一件繁琐的事。晚上在家没事的时候就想着把这个注册机移植到我的LUMIA925上。安装VS补丁和激活手机开发的步骤就不赘述了,具体百度之。我在VS2013中选择的是Windows Phone应用中的空白应用。

      先贴个图演示一下winform版注册机,实际用到的就是两个Label、两个TextBox和一个Button,用到的激活码生成算法也很简单,就是对机器码做一个加salt的MD5操作。

      对照winform版的界面,再考虑手机操作的便捷性,最后WP版的效果就是这样的:

      winform中的label替换成了WP中的TextBlock,另外再添加了两个AppBarButton,作为“清除”和“复制”的按钮。

      然后开始写代码,却发现一下掉到两个坑里了。。。

      坑1:WP8.1中没有默认提供MD5CryptoServiceProvider类,只能自己实现。还好在网上搜到了前人写好的,直接下载添加就可以用了。

      坑2:WP8.1应用商店APP竟然不支持对剪贴板的操作!!没办法,最后采用的是点击“复制”按钮,自动全选激活码并弹出Toast通知,代码如下:

    private void btnCopy_Click(object sender, RoutedEventArgs e)
            {
                txtActivationCode.Focus(FocusState.Programmatic);
                txtActivationCode.SelectAll();
    
                XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
    
                // 找到模板中“'text'”元素,然后添加通知的内容
    
                XmlNodeList elements = toastXml.GetElementsByTagName("text");
    
                elements[0].AppendChild(toastXml.CreateTextNode("激活码已全选,请手动复制!"));
    
                // 通过通知的模板创建一个Toast通知
    
                ToastNotification toast = new ToastNotification(toastXml);
    
                // 弹出通知
    
                ToastNotificationManager.CreateToastNotifier().Show(toast);
    
            }
    

      注意1:与winform不同,在使用TextBox.SelectAll方法之前,必须先对TextBox设置焦点;

      注意2:.程序中使用Toast通知,需要在创建应用程序包之后自动生成的Package.appxmanifest中“支持Toast通知”选择“是”。效果如下:

      终于做好了我的第一个WP应用,总算对得起我的925了,只可惜复制功能还是有缺陷,只能期望WP10里能够修正这个问题。

  • 相关阅读:
    杭电2007
    杭电 2004
    杭电2005
    杭电2001
    杭电 2000
    Section One
    杭电oj 1002
    杭电oj 1001
    JavaScript高级程序设计第14章表单脚本 (学习笔记)
    JavaScript高级程序设计(学习笔记)
  • 原文地址:https://www.cnblogs.com/aaa6032/p/4603395.html
Copyright © 2011-2022 走看看