簡體   English   中英

WPF讀寫RichTextBox文本

[英]WPF reading and writing RichTextBox text

我對WPF很新,遇到了一個問題。

我有一個富文本框,我設置了它的文本。 然后,每當富文本框文本發生更改(使用事件處理程序)時,我需要檢查它是否等於原始文本。

但是,即使文本沒有改變,代碼也說它是由於在閱讀文本時出現了一條新行。

這基本上就是我在做的事情:(顯示問題的簡化版本)

//Create a new text box
RichTextBox r = new RichTextBox();

//Write Text "Hello World" to the rich text box
r.Document.Blocks.Clear();
r.Document.Blocks.Add(new Paragraph(new Run("Hello World")));

//Read Text "Hello World" from rich text box
string textBoxText = new TextRange(r.Document.ContentStart, r.Document.ContentEnd).Text;
Console.WriteLine("\"" + textBoxText + "\"");

我希望在控制台中看到“Hello World”,但它會給出:

"Hello World
"

因為在此之后有一個新行,它會導致我的代碼出現問題。 是否有更好的方法來讀寫RichTextBox以避免這種情況?

我決定在WPF窗口中使用Windows窗體RichTextBox而不是標准的WPF RichTextBox。

使用xaml有點棘手,所以我主要在代碼隱藏窗口打開窗口時設置它的屬性。

到目前為止,它解決了我所有的問題。

更多信息:

https://msdn.microsoft.com/en-us/library/ms751761(v=vs.110).aspx

https://www.simple-talk.com/dotnet/.net-framework/mixing-wpf-and-winforms/

(我不會將此標記為答案,因為如果您想使用WPF RichTextBox而不是WinForms,則無法解決問題)

編輯:實際上,最好避免使用此方法,因為WinForms控件是在所有WPF控件之上繪制的。 這使我無法使用wpf中的下拉菜單。 ......還在尋找答案!!!

編輯:

我嘗試使用此答案在winforms RichTextBox上方繪制我的wpf下拉菜單。 它工作,但對齊出錯了。

現在,我放棄了WPF和WinForms RichTextBox,並使用了AvalonEdit (這太棒了)。 它最初是為代碼編輯器制作的,但適用於任何類型的RichTextBox替換。

我使用了這個的混合來改變文本部分的顏色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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