我有一些 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 自动截断其内容?