CrossReferenceSeparator

FieldIndex.CrossReferenceSeparator property

获取或设置用于分隔交叉引用和其他条目的字符序列。

public string CrossReferenceSeparator { get; set; }

例子

显示如何在 INDEX 字段中定义交叉引用。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 创建一个 INDEX 字段,它将为文档中找到的每个 XE 字段显示一个条目。
// 每个条目都会在左侧显示 XE 字段的 Text 属性值,
// 以及右侧包含 XE 字段的页码。
// INDEX 条目将收集所有在“Text”属性中具有匹配值的 XE 字段
// 进入一个条目,而不是为每个 XE 字段创建一个条目。
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);

// 我们可以配置一个 XE 字段以使其 INDEX 条目显示字符串而不是页码。
// 首先,对于用字符串替换页码的条目,
// 在 XE 字段的 Text 属性值和字符串之间指定一个自定义分隔符。
index.CrossReferenceSeparator = ", see: ";

Assert.AreEqual(" INDEX  \\k \", see: \"", index.GetFieldCode());

// 插入一个 XE 字段,这将创建一个显示该字段页码的常规 INDEX 条目,
// 并且不调用 CrossReferenceSeparator 值。
// 此 XE 字段的条目将显示“Apple, 2”。
builder.InsertBreak(BreakType.PageBreak);
FieldXE indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Apple";

Assert.AreEqual(" XE  Apple", indexEntry.GetFieldCode());

// 在第 3 页插入另一个 XE 字段并为 PageNumberReplacement 属性设置一个值。
// 这个值会显示出来,而不是这个字段所在的页码,
// 并且INDEX字段的CrossReferenceSeparator值会出现在它的前面。
// 此 XE 字段的条目将显示“香蕉,请参阅:热带水果”。
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Banana";
indexEntry.PageNumberReplacement = "Tropical fruit";

Assert.AreEqual(" XE  Banana \\t \"Tropical fruit\"", indexEntry.GetFieldCode());

doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.INDEX.XE.CrossReferenceSeparator.docx");

也可以看看