我在RichTextBlock中有一个RichTextColumns,就像默认VS2012模板中的ItemDetailPage一样。我的RichTextBlock由文本段落组成,这些段落整齐地布置并分成几列。

我想在所有文字paragrahs之后的Image和末尾插入RichTextBlock。如果我使用此代码插入图像

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


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

我尝试更改段落的LineStackingStrategy,但没有帮助。

最佳答案

我在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>

07-24 09:20