walsh 提供的問題文字,
表情,超連結wp上沒有提供對富文字的直接編輯,富文字是通過字串進行轉換的,例如:qq上的表情用斜槓標識(例如:/哈哈),微博上的表情用中括號標識(例如:[兔子])
在msdn看到richtextbox支援乙個xaml的屬性,可以直接構造xaml字串,賦給richtextbox,但是xaml屬性不支援元素,所以如果不需要顯示的話可以使用該屬性
詳情見:
由於需要用到元素,所以我們通過構造xaml然後用xamlreader把xaml轉換為paragraph,再把paragraph賦值給richtextbox.blocks,從而實現富文字
先看效果圖吧
我們對richtextbox進行擴充套件,新增乙個新屬性text
定義richtextbox之前,我們先說明表情字典的載入,我把表情字典儲存在乙個txt檔案中,在載入的時候進行讀取
表情字典在檔案中的定義如下
sina/s001.png,[兔子]然後在需要的時候從檔案中讀取(放在richtextboxext)sina/s002.png,[熊貓]
sina/s003.png,[給力]
sina/s004.png,[神馬]
sina/s005.png,[浮雲]
sina/s006.png,[織]
sina/s007.png,[
圍觀]
using下面是使用,使用很簡單system;
using
system.collections.generic;
using
system.io;
using
system.linq;
using
system.text;
using
system.text.regularexpressions;
using
system.windows;
using
system.windows.controls;
using
system.windows.documents;
using
system.windows.markup;
namespace
richtextdemo
public
string
text
set }
#endregion
//1、由於richtextbox的xaml屬性不支援,所以沒辦法直接通過richtextbox的xaml屬性直接處理
//這裡通過構造xaml並使用xamlreader進行讀取轉換達到富文字的目的
//
/////
///
/// public paragraph converttoelement(string
input)
//匹配普通鏈結(遇到空格或非ascii字元則停止)
//記錄是否重複
var matchs = new list();
foreach (match m in
mc)
//這裡鏈結用藍色顯示,不加下劃線(注意,這裡使用系統的瀏覽器ie開啟)
input = input.replace(m.value.substring(0
, m.value.length),
string.format(@"",
m.value));
matchs.add(m.value);
}matchs.clear();
//匹配安全連線
}//表情字典
var dict =emotiondictionary;
//構造正則模式串(匹配表情)
var builder = new
stringbuilder();
foreach (var key in
dict.keys)
", @"\}"
));"|"
); }
//定義乙個regex物件例項
var r = new regex(builder.tostring().substring(0, builder.length - 1
)); mc =r.matches(input);
foreach (match m in
mc)
var xaml = string.format(@"
", input);
return
(paragraph)xamlreader.load(xaml);
}#region 表情字典
private
static dictionaryemotiondictionary;
public
static dictionaryemotiondictionary
;foreach (var file in
files)
.txt
", file), urikind.relative)).stream)}}
}}return
emotiondictionary;}}
#endregion
}}
<附上demorichtextdemo:richtextboxext
text
margin
="-10,0"
/>
WP8 換膚功能的實現
1 修改顏色畫刷 在修改原有的畫刷 phoneaccentbrush,phoneforegroundbrush,phonebackgroundbrush等等 這裡是系統預設的畫刷 例如 把主題色改為紅色 把主題色改為紅色 由於solidcolorbrush的color是依賴屬性,所以該修改可以通知到...
建立WP8試用應用
windows phone 7 開發 31 日談 第23日 提供試用版應用程式 對資料總結下 如何檢查應用中的試用許可證 using microsoft.phone.marketplace private static licenseinformation licenseinfo new licen...
WP8下實現刮刮樂 橡皮擦 功能
說到刮刮樂這個功能,我們最先想到的是上下兩張 長方形 重疊,之後對上面這張進行操作。我的想法是 通過手勢,讓手指劃過的地方變成透明的,底部就會顯示了。那如何讓變為透明呢?這就要對的畫素進行處理了。對於每乙個元素,官方文件說都是argb32 預乘rgb24 a指的是alpha通道 控制透明度的 256...