2014-02-08 11 views
0

네트워크에서 데이터를로드 한 다음 결과 HTML 파일에서 XAML을 생성하는 라이브러리 Html2Xaml을 사용하여 결과 문자열을 RichTextBlock.DataContext에 바인딩하지만 페이지를 비워두면 무엇이 잘못 되었습니까?XAML 텍스트를 richtextblock에 넣는 방법?

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
    <RichTextBlock> 
     <RichTextBlock.DataContext> 
      {Binding Content} 
     </RichTextBlock.DataContext> 
    </RichTextBlock> 
</ScrollViewer> 

내용 때문에 변수지고 : 당신의 HTMLToXaml 변환 논리가 작동하면 당신의 DataContext가 올바르게 설정되어있는 경우

var item = await SampleDataSource.GetItemAsync((String)e.NavigationParameter); 
HtmlDocument link_page = new HtmlDocument(); 
link_page.LoadHtml(await LoadPage(item.UniqueId)); 
HtmlNode _table2 = link_page.GetElementbyId("main_body"); 
item.Content = Html2XamlConverter.Convert2Xaml(_table2.WriteContentTo()); 
//Content now looks like this: "<Paragraph LineStackingStrategy="MaxHeight">Процедурная генерация карты (часть 1)</Paragraph><Paragraph LineStackingStrategy="MaxHeight"></Paragraph><Paragraph LineStackingStrategy="MaxHeight">Автор: <Bold>Артем Гуревич</Bold></Paragraph><Paragraph LineStackingStrategy="MaxHeight">..." 
this.DefaultViewModel["Item"] = item; 
+0

것은이 사용 다음과 같습니다 유 그들은 단지 따라서 당신이 item.Content에서 각 단락의 값을 추출하고 FlowDocument에 단락으로 추가해야하는 FlowDocument 내부에 필요 할? https://github.com/MacawNL/WinRT-RichTextBlock.Html2Xaml/blob/master/Readme.md#usage – Xyroid

+0

전체 Xaml 코드를 입력하십시오. – AymenDaoudi

답변

0

이, 그리고, 다음 문제는 텍스트에 영향을 미치는하지 않을 것을 것 RichTextBox에 DataContext를 설정하는 것만으로는 충분하지 않습니다. 다음을 수행해야합니다.

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
    <RichTextBlock> 
     <RichTextBlock.DataContext> 
      {Binding Content} 
     </RichTextBlock.DataContext> 
     <FlowDocument> 
      <Paragraph> 
       <!--your content should be here--> 
      </Paragraph> 
     </FlowDocument> 
    </RichTextBlock> 
</ScrollViewer> 

많은 단락을 요

 Paragraph myParagraph = new Paragraph(); 
     myParagraph.Inlines.Add(ParagraphValueFromItemContent); 

     // Add the paragraph to the FlowDocument. 
     myFlowDoc.Blocks.Add(myParagraph);