C# 如何将XAML文本放入richtextblock?
我从网络加载数据,然后使用库Html2Xaml从生成的HTML文件生成XAML,并将生成的字符串绑定到RichTextBlock.DataContext,但是当您打开的页面为空时,我做错了什么C# 如何将XAML文本放入richtextblock?,c#,html,binding,winrt-xaml,richtextblock,C#,Html,Binding,Winrt Xaml,Richtextblock,我从网络加载数据,然后使用库Html2Xaml从生成的HTML文件生成XAML,并将生成的字符串绑定到RichTextBlock.DataContext,但是当您打开的页面为空时,我做错了什么 <ScrollViewer VerticalScrollBarVisibility="Auto"> <RichTextBlock> <RichTextBlock.DataContext> {Binding Content}
<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;
var item=await SampleDataSource.GetItemAsync((String)e.NavigationParameter);
HtmlDocument link_page=新建HtmlDocument();
link_page.LoadHtml(等待LoadPage(item.UniqueId));
HtmlNode_table2=link_page.GetElementbyId(“主体”);
item.Content=Html2XamlConverter.Convert2Xaml(_table2.writeContento());
//现在的内容是这样的:“ППаааааааааааааааааа1)Ааа:Аа
此.DefaultViewModel[“项”]=项;
如果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>
您是否遵循此用法?请把你的整个Xaml代码放进去
Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(ParagraphValueFromItemContent);
// Add the paragraph to the FlowDocument.
myFlowDoc.Blocks.Add(myParagraph);