我的目標是讓編輯器的行爲類似於MS-Word.Wpf RichTextBox是一個非常棒的控件。通過將它放在ScrollViewer中,我們可以使它變得可編輯(就像記事本)但是我需要像頁面一樣的MS-Word。一種有效的方式可能是將樣式應用於scrollViewer,以便我們在richtextbox上創建多個頁面的外觀和感覺,但是我不知道如何去做。我們在項目中做了什麼是使用documentViewer。在FixedPage中,創建一個Header(Canvas),Body(WpfRichTextBox),Footer(Canvas)。因此,創建多個頁面,並通過訂閱RichTextBox的sizechanged事件,我們手動進行分頁,即在高度發生變化時將塊從一個頁面移動到另一個頁面。你看到有更好的方法嗎?使用多個richtextbox會妨礙我的表現嗎?使用多個wpf RichTextBox的MS Word分頁
1
A
回答
1
@WpfProgrammer這是我想說的好方法。說如果你有1000頁的話,肯定會有性能問題。爲了避免這個問題,你需要做需求分頁。
虛擬尋呼:
1.您需要構建一個包含頁面的頁表。每個頁面將包含有關控件,圖像,位置,尺寸和頁面樣式的信息。 [所有可序列化數據]
2.虛擬頁面 - 您需要 對 頁面的所有數據進行反序列化,並使用 RichTextBox創建頁面。虛擬頁面是 ,但是,預緩存頁面 將要呈現。例如說 的例子。如果我在第一頁。然後, 我將刪除下一個3 連續頁面,並將它們放在 集合中。然後,爲連續頁面 移動重複此 過程。使用 最常用的集合添加一些邏輯。它 將足夠快。在 1000頁的情況下。您可以摺疊 那些非骯髒或從未訪問過 頁面。這可能會產生更多的性能。如果性能遠不如 更關心低硬件。 然後,你應該考慮清潔 。
3.清洗 - 清洗是標識LFU頁面的 和刪除 它們的過程。如果 表現更明顯,這將非常有幫助。
1
嗨Tameem 設置最小高度,richTextBox的寬度爲A4尺寸(可以說)。訂閱RichTextBox Size Changed事件。一旦內容超過,這個事件就會被解僱。然後我拿走上一頁的最後一個塊,並將它推到下一頁的第一個塊(記住如果頁面不存在,你需要創建新頁面然後將其添加爲第一個塊),並且焦點也應該更改爲新頁面(因爲如果在最後一個RTB處按回車鍵,則期望焦點在新頁面中)當用戶刪除某個頁面中的塊(比如2nd),然後您需要將所有底部頁面塊添加到此頁面,以便我們的分頁邏輯將再次將塊推下並進行調整。如果你需要進一步的幫助,我可以分享一些代碼。
相關問題
- 1. WPF中的MS Word樣式文本縮進(使用Richtextbox)
- 2. 分頁符不適用於MS WORD 2003
- 3. 頁面之間的分歧MS Word
- 4. 使用宏刪除MS Word頁面
- 5. 使用MS Word XML
- 6. 拆分過高大WPF的RichTextBox成多個控制
- 7. PHP MS Word文件頁數
- 8. 從一個PHP頁面打開MS Word
- 9. 使用WPF創建MS Word插入表的行爲
- 10. MS Word VBA動態頁腳
- 11. 使用richtextbox在wpf中發送郵件
- 12. C#中的TextRange和RichTextBox WPF
- 13. MS Word,使用NPOI庫
- 14. 如何將一個RichTextBox的FlowDocument分配給WPF中的另一個RichTextBox?
- 15. 類似頁面管理的MS Word
- 16. rtf MS Word中的新頁面php
- 17. MS Word的DOC
- 18. WPF Richtextbox FontFace/FontSize
- 19. 更改MS Word 2007中的頁碼
- 20. MS Word中的Apache POI頁腳問題
- 21. 如何在創建MS Word文檔時插入分頁符
- 22. 如何使用VBA增加MS Word頁腳中的值?
- 23. 如何使用Excel VBA引用MS Word目錄頁碼?
- 24. MS Word以XML格式拆分單詞
- 25. 書寫的MS Word 2007使用Perl
- 26. 推出的MS Word模板使用IE
- 27. 使用MS Word API的服務/平臺
- 28. 刪除MS Word的 「HTML」 使用PHP
- 29. RichTextBox的WPF結合
- 30. RichTextBox中的行,WPF
非常感謝頁面虛擬化方法。對我而言,每個編輯器的最大頁數不會超過50個。可能會有2到3個編輯器啓動,但我認爲虛擬化確實可以提高整體性能。我看到的挑戰是分頁,儘管我有一個基本的算法。將塊從一個richtextbox移動到另一個,甚至在刪除操作期間將內容向上移動是一項挑戰。在這種情況下進行虛擬化也很棘手。是否有沒有直接的方式顯示像MS Word這樣的richTextBox頁面? – WpfProgrammer 2010-11-26 08:57:21