2013-03-18 42 views
-2

我得到了一個字符串與xaml或rtf,並想知道如何獲得它在一個c#wpf richtextbox。字符串與XAML或rtf到C#wpf richtextbox

這兩個字符串看起來像這樣,並希望使用其中之一。

string xaml = "<FlowDocument xml:space="preserve" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><Paragraph>HOOFDDORP - Het zou helemaal niet noodzakelijk zijn voor <Run FontStyle="italic">SimCity </Run>om altijd met het internet verbonden te zijn, omdat er geen simulatie op de servers plaatsvindt. </Paragraph></FlowDocument>" 

    string rtf = "{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch HOOFDDORP - Het zou helemaal niet noodzakelijk zijn voor }{\i\ltrch SimCity }{\ltrch om altijd met het internet verbonden te zijn, omdat er geen simulatie op de servers plaatsvindt. }\li0\ri0\sa0\sb0\fi0\ql\par}}}" 
+0

的可能重複[將XAML導入WPF RichTextBox](http:// stackov erlang.com/questions/458141/import-xaml-into-wpf-richtextbox) – 2013-03-18 19:43:02

回答

1
public void populateRTF(string yourRTFString) 
{ 
    MemoryStream memStream = new MemoryStream(ASCIIEncoding.Default.GetBytes(yourRTFString)); 
    yourRichTextBox.Selection.Load(memStream, DataFormats.Rtf); 
} 

使用populateRTF(rtf)

此外,你需要逃避你RTF字符串召喚:

string rtf = @"{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch HOOFDDORP - Het zou helemaal niet noodzakelijk zijn voor }{\i\ltrch SimCity }{\ltrch om altijd met het internet verbonden te zijn, omdat er geen simulatie op de servers plaatsvindt. }\li0\ri0\sa0\sb0\fi0\ql\par}}}" 
+0

我的richtextbox沒有Selection.Load();它是在wpf中創建的richtextbox – DEAD 2013-03-18 14:13:42

+0

它應該,http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox.aspx – SeeSharp 2013-03-18 14:21:57

+0

好了,終於確定感謝您的幫助。 – DEAD 2013-03-18 14:57:17

0

您可以使用:

string content = ""; 
    textBox.Document.SetText(TextSetOptions.FormatRtf, content);