使用InlineUIContainer的RichTextBlock流程

时间:2012-11-01 11:12:43

标签: c# xaml windows-8 microsoft-metro

我在RichTextBlock中有一个RichTextColumns,与默认VS2012模板中的ItemDetailPage一样。我的RichTextBlock由文字段落组成,这些段落整齐排列并分成几列。

我想在Image之后插入RichTextBlock,在所有文本段落之后插入结尾。如果我使用此代码插入图像

<Paragraph LineStackingStrategy="MaxHeight">
    <InlineUIContainer>
       <Image Height=".." Width=".." />
  </InlineUIContainer>
</Paragraph>

问题是,如果最后一列中没有足够的位置,图像不会完整显示,则会在底部剪切。如何让RichTextBlock生成另一列并将Image移动到那里以完整显示?

我试图改变段落的LineStackingStrategy,但它没有帮助。

1 个答案:

答案 0 :(得分:5)

我在gridview模板中的一个之后模拟了额外的InlineUIContainers。但是,我必须添加一个与我的控制高度匹配的LineHeight属性。这有一定原因。

<Paragraph x:Name="rectPara" LineStackingStrategy="MaxHeight" LineHeight="400">
    <InlineUIContainer x:Name="rectUICont" >
          <Canvas x:Name="d3dCanvas" MaxHeight="400" Margin="0,20,0,10" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="True" d:LayoutRounding="Auto">
                <Rectangle x:Name="d3dRectangle" Fill="{Binding RectangleFill}"  Stroke="Red" Height="400" Width="400"  />
          </Canvas>
     </InlineUIContainer>
</Paragraph>