Frage

Ich möchte den Inhalt einer Richtextbox im XAMLPackage -Format in VarBinary (= Byte Array) speichern. Ich brauche einen technischen Rat darüber, wie es geht.

Ich muss tatsächlich wissen, wie man zwischen FlowDocument in Byte -Array umwandelt.

Wird es sogar empfohlen, es als variär zu speichern, oder dies ist eine schlechte Idee?


Aktualisieren

Code-Auszug:

///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
War es hilfreich?

Lösung

Ich kann mein vollständiges Beispiel momentan nicht finden, aber Sie können Xamlreader und Xamlwriter verwenden, um das Dokument in eine Zeichenfolge und aus und aus herauszuholen. Von dort aus können Sie UnicodeCoding, Asciienencoding oder egal welchen Encoder verwenden, den Sie in und aus Bytes bringen möchten.

Mein kürzeres Beispiel für das Einstellen des Dokuments aus einer Zeichenfolge ... Docreader ist mein Flow -Dokument -Leser

        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;
            }
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top