如何让XamlReader.Load(xamlFile)不要插入额外的Run元素?
想象一下,我有一个像这样的FlowDocument:
<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
ColumnWidth="400" FontSize="14" FontFamily="Georgia"
Name="document">
<Paragraph KeepTogether="True">
<Run>ABC</Run>
<Run>DEF</Run>
<Run>GHI</Run>
</Paragraph>
</FlowDocument>
我加载它是这样的:
private void Button_Click(object sender, RoutedEventArgs e)
{
FileStream xamlFile = new FileStream("FlowDocument1.xaml", FileMode.Open);
FlowDocument content = XamlReader.Load(xamlFile) as FlowDocument;
fdReader.Document = content;
}
结果如下:
虽然我想看到的是这样的:
但是在检查观察窗口中的FlowDocument时,我看到它在它们之间插入了一个基本上有空格作为内容的运行,所以不是在段落中有3个Inlines,而是有5个。
如何避免插入空白行?
注意:我无法将这三个运行组合成一个单独的运行,这将是一个简单的答案,因为它们需要保持单独的对象。
想法?
解决方案:正如Aaron在下面正确回答的那样,将运行分组在一行上解决了这个问题。顺便说一句,这个文档是在其他数据(比我的例子更复杂)的基础上构建的,并使用XmlWriter写出来,它将XmlWriterSettings属性设置为true(因为它更容易看到输出而不是全部一起运行) - 将其设置为false可以在XamlReader读入时删除那些额外的运行。
没有找到相关结果
已邀请:
2 个回复
补蹲农界维
然后,您可以通过
访问每次运行...
澜悍景哭苟
会得到不同的结果:
第一个给出“[0-2]”而第二个给出“[0-2]”。特别要注意的是,在第二种情况下,第一个和最后一个
也得到特殊处理,因为在那些之前(或之后)没有插入空格。 显然,即使明确提供(至少一个)
,
为其ѭ7儿童抓取原始XAML的便利特征也不会失败。