1

私はインターネットで私の問題の解決策を探して成功せずに一日を過ごしました...それは理論的には十分に単純なようです。

XAMLにRichTextBoxがあります。データベースに「content」タイプ「LongText」という名前のフィールドがあります

データベースにRichTextBoxのコンテンツを単純なスタイル(太字、斜体、下線)で保存し、データベースを呼び出して、テキストのスタイルを維持しながらデータベースに保存されているRichTextBoxコンテンツを入力できるようにしたいだけです。

その後、これらのデータをブログとして表示する必要がありますが、...データの保存と読み込みは既に正常に行われている必要があります。

XAML:

<RichTextBox x:Name="nameTextEditor" TabIndex="2" Grid.Row="2" SpellCheck.IsEnabled="True">

C#

FlowDocument doc = new FlowDocument();
        StringReader sr = new StringReader(monArticle.Content);
        XmlReader xmlReader = XmlReader.Create(sr);
        Section sec = XamlReader.Parse(monArticle.Content) as Section;
        while (sec.Blocks.Count > 0)
        {
            var block = sec.Blocks.FirstBlock;
            sec.Blocks.Remove(block);
            doc.Blocks.Add(block);
        }
        nameTextEditor.Document = doc;

エラーを処理しないでください: "ExceptionXamlParseException""Donnéesnonvalidesauniveauracine。Ligne1、position1。"

これは私が試した唯一のコードではありませんが、単語を理解せずにテストします...「RichTextBoxのコンテンツを取得」して「データベースに送信」するのはなぜそれほど簡単ではないのですか?!

すべての助けをありがとう

4

1 に答える 1

6
    var doc = rtb.Document;
    var range = new TextRange(doc.ContentStart, doc.ContentEnd);
    var ms = new MemoryStream();
    range.Save(ms, DataFormats.Rtf);
    ms.Seek(0, SeekOrigin.Begin);

    var rtfString=new StreamReader(ms).ReadToEnd();

次に、rtfStringをデータベースに送信します。リッチテキストボックスに表示するには、次の手順に従います。

var doc = rtb.Document;
var range = new TextRange(doc.ContentStart, doc.ContentEnd);
var ms = new MemoryStream();
var sw = new StreamWriter(ms);
sw.Write(rtfString);
sw.Flush();
ms.Seek(0, SeekOrigin.Begin);
range.Load(ms, DataFormats.Rtf);
于 2012-10-23T15:54:41.380 に答える