2009年4月13日 星期一

關於Silverlight中的RichTextBox以及文字處理

有朋友問到Silverlight當中如何設定TextBlock文字的顏色,例如..
ABCDEFGHIJKL
我才恍然發現一件事情,我一直沒有談論到這個部份...-_-'''

補充一下資料如下, 在SL當中,TextBlock是透過XAML標記...來區分不同的文字區塊, 也就是說, 如果您要針對TextBlock的內容設定不同的文字顏色, 可以透過對TextBlock的inlines集合增加一個Run物件即可...例如..... , 而透過程式碼設定的方式如下 :
Dim wordsWithFormat As New Documents.Run
wordsWithFormat.Text = Words
wordsWithFormat.Foreground = New SolidColorBrush(color)
textblock.Inlines.Add(wordsWithFormat)

如此即可設定特定區域文字的顏色,範例程式請參考底下, 按這邊下載。

至於RichTextBox,在SL 2.0沒有直接提供,但在codeplex上有一個project, 包含 source code, 您可以參考底下這個URL : http://www.codeplex.com/richtextedit
(不過有一些小遺憾是, 這個project停留在beta2)

13 則留言:

Howard 提到...

老師你好, 對於老師書中的EIP概念應印象深刻, 可否請老師也介紹一下Silverlight在列印報表的應用,謝謝

David 提到...

根據 Silverlight Development Team 成員 Moe Elshall 的說法, 列印目前尚未在Silverlight 中支援, 需要到下一個preview版本(很可能會是4.0)才開始支援相關的功能...

由於已經在roadmap當中, 所以目前我們盡可能不用hard coding的方式勉強實現這個功能, 建議您等到4.0出現的時候這研究相關的機制較為理想

股之龍 提到...

老師你好!
最近買了你寫的 Silverlight 2.0 範例 權威講座一書,內容敘述對我相當有幫助,但是內容大都採用 VB 撰寫,因我較熟練 C#,可否請問,你是否有書中範例是以C#來加以撰寫的範例呢?或是你是有相關用C#開發 Silverlight 2.0 的相關書籍呢?謝謝!

David 提到...

我想我會考慮在未來出版進階技術書籍的時候, 以C#為主, 初階的入門書籍則以VB為主, 且盡可能同時撰寫兩種語言的範例供使用者下載。

匿名 提到...

為何不要同時出vb和c#的供讀者去選擇呢?現在很多的作者出書不都是同時兩種都出嗎?反正內容一樣頂多是程式碼變成另一種而已啊,而且個人覺得現在市場上的書,c#都賣得比vb好,就連去補習班進修,幾乎也都主推c#,不過市場上的需求好像兩者是都差不多,不過我個人感覺未來c#的需求可能會比vb還要多吧。

David 提到...

匿名同志這您就有所不知了, 有勇氣同時出兩種語言的作者和出版社其實不多(就我所知最近只剩下一兩位我個人很敬佩的作者能這麼做了...), 因為很可能會虧錢, 排版和後製的費用可能會多一倍, 但銷量卻沒法多一倍, 您知道去年很多資訊技術書籍作者出一本書的總版稅可能大約不到一位資深工程師一個半月的薪水(這還算賣得好的), 然後書就因為技術改版而下架了, 但 一本書作者需要寫多久呢? 為何版稅那麼低呢? 因為讀者少, 技術生命週期短, 所以愈是前衛(非大眾, 不普及)的主題, 銷售狀況愈慘, 能夠同時出兩種語言的主題已經不多了, 作者也越來越少, 有沒有發現最近很多作者不出新書了? 慢慢您可能還會發現, 大多數作者出的書內容越來越薄, 很多因素都有, 銷量和投資報酬率是一個問題, 技術的生命週期也是一個問題, 這次出版Silverlight 2.0的書, 很多朋友都虧我說真是有勇氣, 不惜血本的出...
如果您有看過我Silverlight 2.0的序言, 大概可以知道我出SL 2.0書籍的心情...
我不是全職的作者, 都感受到很大的壓力了, 我朋友當中有幾位是全職的作者, 我想您就知道它們的壓力有多大了(喊著不如歸去的大有人在...), 有時候我在想, 我們願意花幾百塊和朋友看一場90分鐘的電影, 吃一頓一兩個小時的午餐, 甚至坐一趟幾十分鐘的計程車, 或是買TV Game, 線上遊戲, 甚至是繳電話費...但是能夠看上十天半個月的一本書, 讀者願意花多少錢呢? 在台灣幾乎沒有作者出版社敢把書的定價定在800以上, 但是很多原文書的內容其實普普, 但隨便也是1200元台幣起跳, 其中有很多辛酸, 不足為外人道, 所以我不全職寫書很久了, 寫書只能算是興趣和一點點的熱情了...
我會盡可能滿足讀者的需求, 也期待讀者多支持本土作者的書籍了...Thanks a lot in advance

匿名 提到...

原本程式設計就是電腦所有技術裡面比較沒有人肯碰的,所以程式設計這類的技術書籍銷售不好也是很正常,總不能拿技術書籍來和網路小說比較吧,而且如果那麼多人都肯買技術書籍像買網路小說一樣,那我看程式設計師花了那麼多精力得到的專業和經驗也沒有什麼價值了吧。

我倒是看到了蠻多作者同時出兩種語言耶,尤其是碁峰的幾乎都會同時出兩種語言,不知道是不是出版社的關係呢,我相信會寫技術書籍的作者們,以賺錢為目的應該很少吧,應該更多是因為興趣和基於分享技術的心態吧。

其實我原本是學php的,後來又跳來學.net,所以我是比較習慣c#的,不過又因為很喜歡董老師的寫作風格,所以又硬是買了很多本董老師的書,只是董老師的書一直都沒有出c#的讓我覺得比較可惜。

其實我只是感覺書如果要出另一種語言,改變的內容部份很少,幾乎只是程式碼在變比較多,所以編排起來應該會省事多了,又或者我之前有買過一本書叫與ajax共舞,這本書的內容是寫c#,不過範例光碟卻同時有c#和vb版的光碟,我覺得這位作者的這個作風很有心,讓我小小感動了一下就是了,不知道這樣子算不算是個方向,如果為了一片光碟多加一點錢的話,我倒是很樂意。

David 提到...

To 匿名兄:
我最近也發現C#的使用者比過去有一定幅度的成長, 所以未來以C#為主進行書籍出版也不無可能, 您提到的基峰出版的書籍, 和與Ajax共舞一書的作者, 一位是我很敬佩的前輩, 另一位是我的好友, 這兩位都是以資訊書籍出版為主要工作的資深技術人, 針對書籍出版的部分我們偶而也會交換意見彼此討論, 如同您所說的, 這兩位在資訊書籍出版上的努力和對讀者的誠意是有目共睹的, 我得幫他們說說話, 類似他們這樣不問代價耕耘的作者真的不多了, 很需要台灣讀者們的繼續支持, 我跟祭師同學聊過, 我很想哪天把一堆作者們都找齊, 然後找一間咖啡廳開一個同學會和讀者們一起聊一聊, 肯定很有趣, 也能讓讀者們知道很多資訊出版工作上的秘辛與趣聞, 同時也蒐集大家的意見, 礙於大家時間很難喬, 作者們又遍布台灣各地方, 這個想法想了很多年了...也許我該積極一點聯絡一下試試看了 ^_^

承佑 提到...

太棒了,如果有這樣的活動,我一定會參與, 肯定獲益匪淺。
其實,也希望包含David大哥在內的作者們, 都能持續出書,因為你們在做的是教育事業,買你們書的除了像我們這類資訊人員外,還有很多也是在學學生。
有你們的耕耘,未來才有更多人才,有可能改變這個世界。
就像楊致遠說的,他最開心的不是能賺多少錢,而是每天都在改變這個世界。
而要改變世界,技術能量的來源,往往是從一本看得懂的書而來的。
所以,如論我們的位置是在哪個環節,堅持下去,讓我們一起改變世界吧!

k` 提到...

呃,董老师。。我等大陆发行您的书快等到遗忘,我要通过淘宝买台湾的书。。。。大陆出版社是否很难讲的通?有眉目吗??

k` 提到...

,但是內容大都採用 VB 撰寫,

里面用C#的范例很少?老师是这样吗?

David 提到...

礙於內地出版社的時程與規劃以及與台灣這邊出版社的溝通問題, 內地可能要到Silverlight 3.0才會出這本書了(內容也會update), 我代表出版社向內地的朋友說聲抱歉, 不過, 我也是最後才知道的, 唉, 不知道要怎麼說了...

k` 提到...

没关系,还好淘宝上可以淘到,只不过贵一点。呵呵。重要的问题是我看到上面。股之龍同学提到,2.0的书是"初階的入門書籍則以VB為主, " 如果是这样的话没有vb基础,只会用C#的我能否学会那些基础?本书不是全部以C#写的代码?