我注意到WinForms RichTextBox有一個ZoomFactor
屬性,我認爲正是我想要的 - 不幸的是,這似乎完全缺少WPF變體。是否可以「縮放」WPF RichTextBox中的文本?
有沒有什麼辦法可以實現相同的功能(增加/減少整個文檔的可見文本大小,而不需要實際改變底層的RTF)?
更新:而在RichTextBox的設置LayoutTransform似乎在非常簡單的設置工作,它不完全等同於設置的,因爲有兩件事情ZoomFactor:
- 首先,滾動條放大也。這看起來很愚蠢。第二,在我的應用程序(由於某種原因,但不是在Kaxaml - 我會探索這個弄清楚爲什麼),文字是位圖縮放,以便它只是放大渲染文本,而不是矢量 - 將其放大以便平滑。這裏就是我說的(注意方式,大的自定義滾動條)的例子:
alt text http://img822.imageshack.us/img822/298/3b7e4e04afc943ff85b2a98.png
更新2:好吧,我發現位變焦正被設置TextOptions引起.TextFormattingMode改爲Display
而不是Ideal
。將其設置爲理想,將重新引入矢量縮放。
但是仍然有那個討厭的滾動條!我的意思是一個選項是禁用滾動RichTextBox並將其包裝在ScrollViewer中,但我想知道這是否會降低性能。如果我這樣做,我還想知道文本包裝是否仍然有效。
文字換工作得很好。 (更難的問題是如果你想關閉文本環繞和水平滾動。)性能似乎沒有什麼不同,我也不能想到它應該是的原因。你可能想要做的一件事是編輯RichTextBox的控件模板,以便它沒有任何類型的邊框鑲邊,因爲它也得到縮放,這看起來像是放大30倍。 – 2010-08-08 00:55:20
我對性能的擔憂是,RichTextBox可能爲大型文檔執行某種內部虛擬化,如果我手動將其包裝在ScrollViewer中,則不會發生這種情況。 – devios1 2010-08-08 16:31:52
現在一切似乎都工作正常,除了令人討厭的事實,我不能使用顯示模式的RichTextBox(我甚至無法將其設置爲顯示模式時,縮放因子爲1。0,由於RichTextBox和TextOptions的bug /限制),但是這相對較小。到目前爲止,大型RTF文件的性能沒有明顯下降,但是隨着大型RTF文檔的發佈,RichTextBox一直比較慢。 – devios1 2010-08-08 20:55:00