WP7中使用自定義的HtmlTextBoxControl使豐富的文字顯示更方便

在wp7中使用自定義的HtmlTextBlockControl使豐富的文字顯示更方便!

在wp7中要顯示豐富的文字有3種方案
1.用html頁面web browser
2.richtextblock 控件
3.就是下面我要介紹的方法 用自定義的HtmlTextBlockControl

其中1.2兩種方法 我抽空會慢慢給大家介紹

我自定義了一個HtmlTextBlock,“兼容”TextBlock的更換,知道如何採取簡單的HTML(XHTML的技術上)的方式,相當接近Web瀏覽器如何顯示。一張圖片勝過千言萬語,所以直接上圖吧:

使用方法也很簡單




說明

HtmlTextBlock支持下面的HTML元素:<A>,<B>,<BR>,<EM>,<I>,<P>,<STRONG>,<U>。屬性不支持異常的<A>元素的href屬性
我最初計劃用HtmlTextBlock從TextBlock的派生,只需重寫它的Text屬性。然而,TextBlock的是密封的,因此是行不通的。
下一個顯而易見的方法是,在HtmlTextBlock 裏面放TextBlock,所以這就是我在這裏的做法。而且要達到很好的兼容性(即,能夠方便地用HtmlTextBlock替換的TextBlock),意味着我需要手動實現各種HtmlTextBlock TextBlock的屬性,並通過對底層的TextBlock封裝。所以HtmlTextBlock實際上並不來自TextBlock的,但它的行爲就像它一樣。


我能想到的幾個原因爲什麼運行可能不支持鼠標事件,但在這種情況下很方便的,如果它沒有。:)
HtmlTextBlock使用XmlReader來分析其輸入時顯示運行和換行符元素。這使得解析實現簡單,可靠,但解析時,輸入的是不是XHTML(如無效的HTML或有效的HTML,其中空元素沒有結尾的'/'(前:“參考”而不是“< BR />“))。

在解析錯誤時,HtmlTextBlock的默認行爲是把它當作TextBlock一樣,直接顯示文字。

HTML渲染覆蓋了詳細的規範,但有些規則是很難預料的。具體來說,處理間隔和空格('','\ N','\ T“等)的規則可能會非常棘手,很難得到正確的解析。我做了一些嘗試,以確保HtmlTextBlock如下規則下更方便,我的目標不是在html這領域實現100%達標。HtmlTextBlock應該相當密切配合的有效輸入瀏覽器的HTML渲染,但如果你知道規則,這不是太難區分其中差異。

HtmlTextBlock顯然是一個不完整的HTML渲染引擎[這不是網頁瀏覽器!。不過,如果你要添加您的wp7應用程序的富文本的簡單支持,不想做大量的工作,HtmlTextBlock可能就是你的東西!

codewp7 滷麪網 wp7開發論壇: http://www.codewp7.com/forum.php?mod=viewthread&tid=104

源代碼請猛擊這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章