none
新手求教,WPF中使用XamlReader读取FlowDocument的问题。 RRS feed

  • 问题

  • 使用XamlReader读取一个xml文件,内容如下。
    XML原文:
    <FlowDocument PagePadding="5,0,5,0" AllowDrop="True" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
     <Paragraph>q23454w67</Paragraph>
     <Paragraph>4376778</Paragraph>
     <BlockUIContainer TextAlignment="Justify">
      <Image Source="Image\-370348374042.jpg" Stretch="None" />
     </BlockUIContainer>
    </FlowDocument>
    读取之后赋值给RichtextBox或FlowDocumentReader,结果是文字正常,图片无法显示(图片已经在Image\-370348374042.jpg存放)。
    查看读取结果,发现变成了
    <FlowDocument PagePadding="5,0,5,0" AllowDrop="True" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
     <Paragraph>q23454w67</Paragraph>
     <Paragraph>4376778</Paragraph>
     <BlockUIContainer TextAlignment="Justify">
      <Image Source="{x:null}" Stretch="None" />
     </BlockUIContainer>
    </FlowDocument>
    图片的source不知跑哪去了,总之感觉是这个xamlreader的问题,如果自己做一个reader的话太麻烦,求教。

    如提供另外的,动态在richtextbox中加载图片的方法也可。谢谢。

    2009年7月30日 9:31

全部回复

  • Xaml文件有两种,一种是保存图片的地址的Xaml,另外一种是直接保存图片的XamlPackage。我通常使用直接保存图片的模式,这样图片是以二进制的形式存在Xaml文件中的,读取后就不会有问题了。另外读取时使用的是TextRange.Load,格式选择就是XamlPackage。读取Xaml也没有问题,还可以读Rtf和Text文件。XamlReader不适合用来读取FlowDocument的内容。

    http://msdn.microsoft.com/zh-cn/library/system.windows.documents.textrange.aspx
    2009年8月15日 12:22