2010-04-16 3 views
1

J'ai quelques problèmes avec le chargement d'une riche zone de texte à partir d'un flux de mémoire. J'ai certaines données dans une table de base de données stockées sous forme de tableau d'octets, je le convertis en une chaîne et le charge dans un flux de mémoire, puis je veux charger ce flux de mémoire dans la zone de texte riche. Les pauses d'application surCharger richtextbox à partir de la mémoire. WPF/VB> NET

Dim tr As New TextRange (rtbTemplate.Document.ContentStart, rtbTemplate.Document.ContentEnd)

cependant.

code pour obtenir les données de la base de données

Dim TemplateData As Byte() = TemplateDataTableInstance.Rows(0).Item("TemplateData") 
    Dim strTemplateData As String 
    Dim enc As New System.Text.UTF8Encoding() 
    strTemplateData = enc.GetString(TemplateData) 

' I put a messagebox here to check if I get the data I want and I do 

Maintenant, comment puis-je trier le reste? Je

Dim strDataFormat As String = DataFormats.Rtf 
    Using ms As New MemoryStream(strTemplateData) 
     Dim tr As New TextRange(rtbTemplate.Document.ContentStart, rtbTemplate.Document.ContentEnd) 
     tr.Load(ms, strDataFormat) 
    End Using 

et mon richtextbox en XAML

 <RichTextBox x:Name="rtbLetter"> 
      <RichTextBox.Resources> 
       <Style TargetType="{x:Type Paragraph}"> 
        <Setter Property="Margin" Value="0"/> 
       </Style> 
      </RichTextBox.Resources> 
      <FlowDocument FontSize="12" FontFamily="Times New Roman"> 
      </FlowDocument> 
     </RichTextBox> 

Toute aide est appréciée.

Répondre

2
Dim fd0 As FlowDocument = New FlowDocument 
    Dim strDataFormat As String = DataFormats.Rtf 
    Dim ba() As Byte = Text.Encoding.ASCII.GetBytes(strDataFormat) 
    Dim ms As IO.MemoryStream = New IO.MemoryStream(ba) 

    Dim tr As TextRange = New TextRange(fd0.ContentStart, fd0.ContentEnd) 

    tr.Load(ms, System.Windows.DataFormats.Rtf) 

    ms.Close() 

rtbLetter.document = fd0 
Questions connexes