Domanda

Voglio salvare il contenuto di un RichTextBox in varbinary (= array di byte) in formato XamlPackage. Ho bisogno di consigli tecnici su come farlo.

In realtà ho bisogno di sapere come convertire tra FlowDocument in array di byte.

Si consiglia persino di memorizzarlo come varbinary o questa è una cattiva idea?


Aggiorna

Snippet di codice:

///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
È stato utile?

Soluzione

Non riesco a trovare il mio esempio completo in questo momento, ma puoi usare XamlReader e XamlWriter per ottenere il documento dentro e fuori da una stringa. Da lì, puoi utilizzare UnicodeEncoding, AsciiEncoding o qualsiasi codificatore che desideri ottenere da e dentro i byte.

Il mio esempio più breve per impostare il documento da una stringa ... docReader è il mio lettore di documenti di flusso

        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;
            }
        }
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top