2

我想知道是否有办法避免某些段落之间的换行。例如:

Paragraph PjourneyTitle = sec.AddParagraph(journeyTitle, "Heading2");
Paragraph Pjourney = sec.AddParagraph();
Pjourney.Format.Font.Bold = true;
Pjourney.AddText(offer.Destination);

在 PjourneyTitle 和 Pjourney 之间发生了换行符,我想避免这种情况。

今天我一直在谷歌上搜索,但无济于事。

任何帮助是极大的赞赏。提前致谢!

编辑:使用你们建议的代码后:这似乎对我不起作用......不管是什么原因。虽然 KeepWithNext 似乎是 ParagraphFormat 中的一个选项,但将其设置为 true 对我没有任何作用。我正在设置一个样式(Heading2),我在上面发布的 MigraDoc 代码中使用它。

这是 Heading2 的样式代码:

style = document.Styles["Heading2"];
style.ParagraphFormat.LeftIndent = "0cm";
style.ParagraphFormat.KeepWithNext = true;
//style.ParagraphFormat.KeepTogether = true;
style.Font.Size = 10;
style.Font.Bold = true;
style.ParagraphFormat.PageBreakBefore = false;
style.ParagraphFormat.SpaceBefore = 6;
style.ParagraphFormat.SpaceAfter = 6;
4

2 回答 2

2

我认为您正在寻找 keepWithNext 属性。将其设置为真。

http://msdn.microsoft.com/en-us/library/system.windows.documents.paragraph.keepwithnext.aspx

于 2013-03-15T19:10:45.137 回答
2

KeepWithNext 将确保第一段的最后一行和第二段的第一行在同一页上。所以它可以防止这两个段落之间的分页符,但不能防止段落内的分页符。

KeepTogether 将防止段落内出现分页符。

如果您想将两个段落都视为牢不可破的块,则在两个段落上使用 KeepTogether 并在第一段上使用 KeepWithNext 应该可以解决问题。

设计使每个段落都从新行开始。没有办法防止段落之间换行(对不起,我应该更仔细地阅读这个问题)。

您可以使用 AddFormattedText 在段落中混合不同的格式(例如粗体和正常)。

You can use a table (maybe with hidden borders) to have two different columns.

So depending on your needs, AddFormattedText or a table may be the best option.

于 2013-03-18T14:24:38.670 回答