[英]How to work with RichTextBox in WPF
我有一個WPF應用程序,我想在其中將TextBox轉換為RichTextBox。 我已經編寫了以下代碼行:
<RichTextBox>
<FlowDocument>
<Paragraph>
<Run Text="{Binding GeneralDescription}" />
</Paragraph>
</FlowDocument>
</RichTextBox>
這樣可以顯示字符串GeneralDescription,並且我可以對其進行編輯和格式化。 現在,我遇到一個問題,當我標記文本的一部分時,將其格式化(例如,使其變粗),保存文檔並重新打開文檔,僅顯示文本的一部分,直到顯示格式。 我不確定錯誤是在顯示內還是在保存內。 無論哪種情況,這都很煩人。 我該如何運作? GeneralDescription是字符串類型的問題嗎?
提前致謝。
問題是您的string
數據僅包含純文本,並且其中的XAML design tags
在加載時將被忽略。
Textbox
和RichTextBox
是具有完全不同行為的控件。
問題還在於RichTextBox
不支持這種本地綁定。 RichTextBox
上的Document不是依賴項屬性,這就是原因。
就我個人而言,我使用David Veeneman擴展控制。
要直接保存或加載FlowDocument
,請使用:
FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
XamlWriter.Save(myFlowDocumentObject, fs);
和
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
FlowDocument myFlowDocumentObject = XamlReader.Load(fs) as FlowDocument;
順便說一下,部分支持Run
標簽數據綁定。
完全支持數據綁定的一種方式。 可以將運行綁定到數據源,並且運行的內容將反映其綁定的值。 綁定的“運行”將接收並顯示數據源中發生的任何更改。
部分支持兩種方式的數據綁定 。 如果通過調用WPF屬性系統更新綁定的運行,則運行所綁定到的數據源將反映對運行的更改。 另一方面, 如果通過RichTextBox或文本對象模型更新了綁定的Run , 則Run將失去其binding 。
我可以使用此頁面上提供的代碼解決問題: http : //www.codeproject.com/Articles/37169/WPF-RichText-Editor
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.