0

我想以 XamlPackage 格式将 RichTextBox 的内容保存到 varbinary(= 字节数组)。我需要有关如何操作的技术建议。

我实际上需要知道如何在 FlowDocument 和字节数组之间进行转换。

是否甚至建议将其存储为 varbinary,或者这是一个坏主意?


更新

代码片段:

///Load
byte[] document = GetDocumentFromDataBase();
RickTextBox tb = new RickTextBox();
TextRange tr = new TextRange(tb.Document.ContentStart, tb.Document.ContentEnd)
tr.Load(--------------------------) //Load from the byte array.


///Save
int maxAllowed = 1024;
byte[] document;
RichTextBox tb = new RichTextBox();
//User entered text and designs in the rich text
TextRange tr = new TextRange(tb.Document.ContentStart, tb.Document.ContentEnd)   
tr.Save(--------------------------) //Save to byte array
if (document.Length > maxAllowed) 
{
    MessageBox.Show((document.Length - maxAllowed) + " Exceeding limit.");
    return;
}
SaveToDataBase();
TextRange
4

1 回答 1

0

我现在找不到完整的示例,但您可以使用 XamlReader 和 XamlWriter 将文档放入和取出字符串。从那里,您可以使用 UnicodeEncoding、AsciiEncoding 或任何您想要输入和输出字节的编码器。

我从字符串设置文档的简短示例... docReader 是我的流文档阅读器

        private void SetDetails(string detailsString)
    {
        if (docReader == null)
            return;
        if (String.IsNullOrEmpty(detailsString))
        {
            this.docReader.Document = null;
            return;
        }
        using (
        StringReader stringReader = new StringReader(detailsString))
        {
            using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(stringReader))
            {
                this.docReader.Document = XamlReader.Load(reader) as FlowDocument;
            }
        }
    }
于 2009-10-27T03:53:48.550 回答