【问题标题】:How to put XAML text into richtextblock?如何将 XAML 文本放入richtextblock?
【发布时间】:2014-02-08 06:12:44
【问题描述】:

我从网络加载数据,然后使用库 Html2Xaml 从生成的 HTML 文件生成 XAML 并将生成的字符串绑定到 RichTextBlock.DataContext,但是当你打开页面时是空白的,我做错了什么?

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

内容变得如此多变:

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;

【问题讨论】:

标签: c# html binding winrt-xaml richtextblock


【解决方案1】:

如果您的 HTMLToXaml 转换逻辑正常工作,并且您的 DataContext 设置正确,那么问题将是您没有影响到 RichTextBox 的文本,设置 DataContext 是不够的,您应该这样做:

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

您可以根据需要放置多个段落,它们只需要在FlowDocument 内,因此您应该从 item.Content 中提取每个段落的值并将其作为段落添加到 FlowDocument 中:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多