用Behavior在WP7平台上转换HTML Tag效果

之前的项目需要从服务器获取一段HTML内容,将其效果显示在手机端。Android和iOS都有比较轻松的方法实现此效果,但WP7的RichText比较挫,挫到什么程度?不仅在后台生成内容需要new一大堆Run、Paragraph之类的特定元素,连直接绑定属性都必须用特殊的XAML tags。所以从一开始压根儿就没想着能直接转换。由于要处理的HTML Tags不算很多,所以采用了正则表达式匹配后替换Tag内内容为特定元素的方法。

简单说来就是将某Tag和它后面(可能存在的)普通文本作为“一对”元素进行处理,根据Regex::Matches()匹配出来的一个个Match去找它后面的普通文本,然后分别按照指定的颜色和普通颜色生成两截文字,添加到RichText中。

而单纯绑定RichText的内容是行不通的(见上面的链接),所以用了Behavior进行文本到特定元素的处理,这样将需要绑定的Property丢给Behavior就可以了。

效果类似于:

Demo下载。只演示了识别Font后根据它指定的颜色生成对应文本的效果,由于项目还在进行,没法把解析更多Tag的代码放出来,但思路基本是一致的。