字符串与xaml或rtf c# wpf richtextbox

本文关键字:wpf richtextbox rtf xaml 字符串 | 更新日期: 2023-09-27 18:04:24

我得到了一个字符串与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}}}"

字符串与xaml或rtf c# wpf richtextbox

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}}}"

您可以使用:

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