前些天发过一个LinkLabel的文章,这些天我用过之后发现很多不方便的地方,前两天着手改进了一下。

给link类添加一个属性叫type,目的是为了给不同类型例如 @xxx #xxx# 和 http:// 甚至是邮箱和电话号码的 Hyperlink button 添加了一个分类的处理方式,这样好像有点繁琐,不过似乎是一个最简单易于实现的办法了。

第一步:扫描发现所有Link 类型,为每一个link生成不同type的link对象,记录在linkcollection 类的一个对象里面,

第二步:排序,因为第一次的扫描是基于很多regex的,所以可能第一个是网页链接,第二个是@人的链接,第三个又是网页链接,我需要在linkcollection里面把他们有正确的出现顺序表达出来,为后面的文字处理提供方便,当然这里我用了一个及其简单的选择法排序,找到链接,选取出startindex 最小项目,然后把它前面的文字包括他本身,一起截断。这样的好处是避免有两个一样的链接出现时候,如果他们的顺序不是紧挨着的,就不会悲剧。不截断的话,如果下次出现以前出现过的一个链接的text,那么index 会显示为以前的那个,比较时候显然会失误的。

第三步:处理文字,把text扫描,基于linkcollection里面的link 来处理文字,这个和以前没什么很大区别,不赘述了。处理过程中switch一下各个链接的type属性,用不同的CreateXXXHyperlinkbutton函数来处理不同的类型的link。生成的hyperlinkbutton 就可以具有各自的click项了,这里参照了SmartTextBlock,做了一个public的event,如果定义过之后,那么点击时候会raise那个event,如果未定义,就用默认的各个type的click事件了。

我不太爱发代码。。。总之记录下来处理经过以后自己看不懂了好改。。。

对了,autocutpanel现在还是只能处理text。经过这次改进,可能对处理hyperlink button 会更容易实现,那么我已经将linklabel改为了autocutpanel的一个继承类,也就是直接用this.children.add语句添加控件了。呵呵,小改小改。这几天考试完毕想把自己的客户端完善一下。但是对于位置信息那一块不太熟悉的领域可能还是不会涉足了。看能否添加中文输入控件。

当然最重要的任务还是研究好raddataboundlist的代码,看滑动特性和载入特性如何兼得,因为我尝试过其他list,如果滑动比较流畅的,那么在页面导航时,即使是goback的 也会载入很慢很慢。但是如果载入很快的,那么滑动起来会很卡很卡。。。怎么破。。。wp7的listbox实属一大挑战。一直盗版使用raddataboundlistbox,两个月的试用期即将到来,那么我还是应该去寻求一个解决方法了。

那么todolist是这样的:

1,账号管理和settings完善。

2,把loginuser和unreadhint单实例化?还是monostate?还是直接本地存储呢。。。

3,申请私信功能,完成私信和@me和最近评论的一个pivot,以及pivot的手势改进。

4,黑名单功能。

5,一些控件了,例如首页的Dock,和登录页面的Square我想做成一个panprama,我有个很棒的idea,嘿。

6,够了够了,再多计划也不能一下吃成大猪头。。。考试完毕再说。复习,复习啊。。。万恶的制冷附件。。。

转载于:https://www.cnblogs.com/btxakita/archive/2011/06/21/2086367.html

[06.21] LinkLabel 代码重构和我的SinaWeibo7 Project Todolist相关推荐

  1. CSS代码重构与优化之路

    写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如果没有及时对CSS代码进行维护,CSS代码不断会越来越多.CSS代码交错复杂,像一张庞大的蜘蛛网分布在网站的各个位置 ...

  2. 系统重构的原则代码重构的原则

    作者:[美]马丁•福勒(Martin Fowler) 译者:熊节, 林从羽 前一章所举的例子应该已经让你对重构有了一个良好的感觉.现在,我们应该回头看看重构的一些大原则. ##2.1 何谓重构 一线的 ...

  3. 工程师必知的代码重构指南

    作者 | CATE LAWRENCE 译者 | 冬雨 策划 | 蔡芳芳 本指南将带你了解进行代码重构的好处.可能遇到的挑战.可以采用的工具和最佳实践,以及重构和技术债务之间的区别. 我们都在寻找清理代 ...

  4. php代码重构,Shell在代码重构中的应用了解下

    代码重构(Code refactoring)有时是很枯燥的,字符串替换之类的操作不仅乏味,而且还容易出错,好在有一些工具可用,以PHP为例,如:Rephactor,Scisr等等,不过现成的工具往往意 ...

  5. 说说Shell在代码重构中的应用

    说说Shell在代码重构中的应用 出处信息 出处:http://blogread.cn/it/article/3426?f=wb 代码重构(Code refactoring)有时是很枯燥的,字符串替换 ...

  6. 【JAVA】代码重构技巧

    简介 重构是持续改进代码的基础.抵制重构将带来技术麻烦:忘记代码片段的功能.创建无法测试的代码等等. 而有了重构,使用单元测试.共享代码以及更可靠的无bug 的代码这些最佳实践就显得简单多了. 鉴于重 ...

  7. 环信即时通讯SDK集成——环信 uni-app-demo 升级改造计划——整体代码重构优化(二)

    概述 本次关于 uni-app 代码整体重构工作,基于上一期针对 uni-app 官网 demo 从 vue2 迁移 vue3 框架衍生而来,在迁移过程中有明显感知,目前的项目存在的问题为,项目部分代 ...

  8. 南开02-06经济学考研真题和我的一点考研心得

    <script type="text/javascript">ad_01.innerHTML=span_ad_01.innerHTML;span_ad_01.inner ...

  9. 我的代码重构经验(转载)

    链接:https://www.cnblogs.com/clover-toeic/p/3842758.html 说明 本文在<MDU某产品OMCI模块代码质量现状分析>一文的基础上,分享作者 ...

最新文章

  1. 开发日记-20190725 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 15
  2. tableau做折线图_Tableau | 20种常用图表(上文)
  3. Matlab 工具箱
  4. c++ template(8)模版多态
  5. 【机房收费系统】--SSTab控件与MSHFlexGrid控件
  6. linux kvm虚拟化ha,基于RHEL6.3-KVM三节点虚拟机命令行搭建HA
  7. 02.XMemcached的使用
  8. 【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(四)
  9. html解决页面放大后元素乱排的问题
  10. d7100 远程控制拍照(无线,有线,手机,电脑,路由器)
  11. Flink的基础概念
  12. python慕课编程答案_中国大学慕课Python编程基础课后答案
  13. 数据库缓存服务——NoSQL之Redis配置与优化
  14. WebView(三)—— WebView使用漏洞
  15. Python 读书笔记(1)
  16. grpc介绍(一)——rpc、protobuf和grpc
  17. Whistle——抓包工具
  18. 工作站,台式机,服务器区别
  19. 微信链接不要随便点!小心电脑电脑被黑客操控
  20. 维辰超市:借助云商城成功转型新零售

热门文章

  1. 矩阵特征值的求解过程
  2. bps、pps、fps
  3. UI设计师如何脱颖而出 面试过程中要注意什么
  4. 计算机专业对数学英语要求高吗,大学专科计算机专业对英语数学的要求高么
  5. 如何实现超大文件上传?
  6. IvParameterSpec 干什么用的
  7. Android问题解决-部分机型上传图片失败
  8. 网页部署https后浏览器访问风险提示或者您的链接不是私密链接解决方案
  9. 冯诺依曼体系结构 概要
  10. 安装MySQL之步骤~