Представьте, что у меня есть 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 в окне просмотра, я вижу, что он вставляет прогоны между ними, которые по существу имеют пробел в качестве их содержимого, поэтому вместо трех строк, которые, как я ожидаю, внутри абзаца, есть 5.
Как можно избежать вставки этих пустых прогонов?
Примечание: я не могу сгруппировать эти три прогона в один, что было бы простым ответом из-за того, что они должны оставаться отдельными объектами.
Идеи
Решение : Как правильно ответил Аарон ниже, сгруппированная серия «Все прогоны» решает эту проблему. Кроме того, этот документ создавался на лету из других данных (более сложных, чем мой пример) и записывался с использованием XmlWriter, для которого свойство Indent XmlWriterSettings было установлено в true (потому что было легче увидеть выходные данные, чем все) запускать вместе) - если установить значение false, эти дополнительные прогоны будут исключены при чтении XamlReader.