-2

我得到了一个带有 xaml 或 rtf 的字符串,想知道如何在 ac# 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}}}"
4

2 回答 2

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}}}"
于 2013-03-18T14:07:13.363 回答
0

您可以使用:

  string content = "";
  textBox.Document.SetText(TextSetOptions.FormatRtf, content);
于 2013-03-18T14:56:31.213 回答