0

我有一些 XML ......

...
<body>
    <p>blah blah blah blah blah blah </p>
    <p>blah blah blah blah blah blah </p>
    ...
</body>
...

我将 XML 解析为一个字符串,以便在将每个 P 元素附加到字符串之后插入一个双换行符......

foreach (XElement e in element.Element("body").Descendants("p"))
{
    try
    {
        item.Content += e.Value + Environment.NewLine + Environment.NewLine;
    }
    catch { }
}

项目的 Content 属性稍后绑定到 Visual Studio 2012 中可用的项目详细信息页面模板的 RichTextBlock 元素中的 Content Run。此时我注意到一些奇怪的行为。

有些项目会在第一列的末尾截断它们的文本,并在我希望文本溢出到新列的地方添加省略号。当我更改模拟器的分辨率时,先前被截断的项目会正确显示,而另一个项目将被截断。如果我切换分辨率,那么前一个项目会再次截断。

截图:http: //i.stack.imgur.com/qrTqP.png

更奇怪的是,如果我更改解析代码以插入三个换行符,一切都会像我预期的那样溢出。

最初我假设 RichTextBlock 错误地计算了溢出到新列的需要,但这并不能解释它添加的省略号,也不能解释它总是在单词末尾截断的事实。

这是我的 RichTextBox 的 XAML ......

<RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}" IsTextSelectionEnabled="False">

    <Paragraph>
        <Run FontSize="26.667" FontWeight="Light" Text="{Binding Title}"/>
        <LineBreak/>
        <LineBreak/>
        <Run FontWeight="Normal" Text="{Binding PublicationDate, Converter={StaticResource DateTimeString}}"/>
    </Paragraph>

    <Paragraph LineStackingStrategy="MaxHeight">
        <InlineUIContainer>
            <Image x:Name="image" MaxHeight="480" Margin="0,20,0,10" Stretch="Uniform" Source="{Binding LargeImage, Converter={StaticResource ImageLocation}, ConverterParameter=news}" AutomationProperties.Name="{Binding Title}"/>
        </InlineUIContainer>
    </Paragraph>

    <Paragraph>
        <Run FontWeight="SemiLight" Text="{Binding Content}"/>
    </Paragraph>

</RichTextBlock>

有谁知道为什么会发生这种情况以及如何防止 RichTextBlock 自动截断其内容?

4

0 回答 0