Поделиться через


Практическое руководство. Изменение интервалов между абзацами

Обновлен: Ноябрь 2007

В этом примере демонстрируется настройка или устранение интервалов между абзацами в содержимом нефиксированного формата.

В содержимом нефиксированного формата дополнительное расстояние, возникающее между абзацами, является результатом набора полей этих абзацев. Поэтому интервалами между абзацами можно управлять при помощи корректировки полей этих абзацев. Чтобы полностью убрать дополнительное расстояние между двумя абзацами, установите поля для абзацев в значение 0. Для достижения одинакового интервала между абзацами во всем FlowDocument, используйте стилизацию для установки одинакового значения поля для всех абзацев в FlowDocument.

Важно обратить внимание, что поля для двух соседних абзацев заменены на большее поле, а не увеличены вдвое. Таким образом, если два соседних абзаца имеют поля 20 точек и 40 точек соответственно, результирующий интервал между абзацами будет 40 точек, что является большим из двух значений полей.

Пример

В следующем примере используется стилизация для установки полей для всех элементов Paragraph в FlowDocument в значение 0, которая эффективно удаляет дополнительное расстояние между абзацами в FlowDocument.

<FlowDocument>
  <FlowDocument.Resources>
    <!-- This style is used to set the margins for all paragraphs in the FlowDocument to 0. -->
    <Style TargetType="{x:Type Paragraph}">
      <Setter Property="Margin" Value="0"/>
    </Style>
  </FlowDocument.Resources>

  <Paragraph>
    Spacing between paragraphs is caused by margins set on the paragraphs.  Two adjacent margins
    will "collapse" to the larger of the two margin widths, rather than doubling up.
  </Paragraph>

  <Paragraph>
    To eliminate extra spacing between two paragraphs, just set the paragraph margins to 0.
  </Paragraph>
</FlowDocument>