2009-03-02 32 views
8

Làm cách nào để nhận văn bản trong RTF của RichTextBox? Tôi đang cố gắng để có được như thế này, nhưng tài sản không tồn tại.Cách nhận RTF từ RichTextBox

RichTextBox rtb = new RichTextBox(); 
string s = rtb.Rtf; 

Trả lời

14

Để có được XAML thực tế tạo ra bởi người sử dụng bên trong RichTextBox:

TextRange tr = new TextRange(myRichTextBox.Document.ContentStart, 
           myRichTextBox.Document.ContentEnd); 
    MemoryStream ms = new MemoryStream(); 
    tr.Save(ms, DataFormats.Xaml); 
    string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray()); 

EDIT: Tôi không có mã trước mặt tôi để kiểm tra, nhưng một thể hiện của loại TextRange có (stream) phương pháp Save mà phải mất một tham số DataFormats, có thể DataFormats.Rtf

+1

DataFormats chứa thành viên Rtf. Có lẽ phương pháp này sẽ hoạt động. –

+0

Và bây giờ, làm thế nào để tôi có thể thiết lập văn bản RTF của RichTextBox? – rpf

+1

đặt một câu hỏi khác! ;) –

4

có 2 lớp RichTextBox, một từ khuôn khổ winforms và một từ khuôn khổ WPF:

System.Windows.Controls.RichTextBox wpfBox; 
System.Windows.Forms.RichTextBox winformsBox; 

Chỉ RichformBox RichTextBox có thuộc tính Rtf, tài sản còn lại có thuộc tính Tài liệu có chứa FlowDocument.

+0

Có. Tôi biết ... Từ thuộc tính Tài liệu, làm cách nào để lấy văn bản RTF? – rpf

+0

Bạn nên xem xét chuyển đổi FlowDocument thành chuỗi RTF vì nội dung của điều khiển WPF là FlowDocument chứ không phải RTF. Tôi không có ý tưởng làm thế nào để thực hiện điều này mặc dù. – Wouter