簡體   English   中英

如何在WPF中使用RichTextBox

[英]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在加載時將被忽略。


TextboxRichTextBox是具有完全不同行為的控件。

問題還在於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM